Function that returns 2 values
Mostrar comentarios más antiguos
Given : Your function header should look like the following:
function [Z,P]=myfun(A)
Find : Create a function myfun that accepts a matrix A as an input. The function should return 2 values...
- Z - is the total number of elements in A that contain zeros
- P - is the product of all values that are greater than 2
Issue: I created my function, and it makes sense to me, but I am still getting errors...
My Solution :
function [Z,P]=myfun(A)
Z=sum(A(A==0))
P=prod(A(A>2))
end
% Code used to call funtion:
% A=randi([-5 5],40);
% [Nzero,prod2]=myfun(A)
7 comentarios
You should run your code for us so that we can see the errors you are talking about. When I run the code as below, there are no error messages.
% Code used to call funtion:
A=randi([-5 5],40);
[Nzero,prod2]=myfun(A)
function [Z,P]=myfun(A)
Z=sum(A(A==0));
P=prod(A(A>2));
end
"but I am still getting errors..."
No errors (but note the number of zero values in A):
A = randi([-5 5],40)
[Nzero,prod2] = myfun(A)
function [Z,P]=myfun(A)
Z=sum(A(A==0));
P=prod(A(A>2));
end
Did you define the function in a script AND have some code after the function definition? As that error message would clearly tell you, in a script any local function definitions must come after all other code:
This was explained in your earlier question:
Stephen23
el 20 de Mzo. de 2024
"My logic for Z is I want the sum of the matrix A, where the values of A are equal to 0."
And that is what your code does.
But that is not what the assignment requested: it asks that you count elements, not sum their values.
Spaceman
el 21 de Mzo. de 2024
Steven Lord
el 21 de Mzo. de 2024
Recognizing what information a question is asking you is sometime difficult; schools often try to help students develop that skill via word problems starting at an early age, but it's not always easy.
Determining how to calculate that information can be just as tricky, though hopefully not as bad in MATLAB if you have access to the documentation. I tried searching for a phrase from your question in Help Center to see how helpful they'd be.
"number of elements" mostly found functions in the External Language Interfaces which would be good if you were writing code in a different language and calling it from MATLAB, but not quite what you're looking for.
Then I filtered the "number of elements" search to list just Functions (since I'm looking for a function to call to answer the question) and the first three hits look promising: numel, groupcounts, and nnz. numel and nnz are directly applicable to the question; groupcounts would require you to define "everything that's 0" as one group and "everything that's not 0" as another.
Spaceman
el 23 de Mzo. de 2024
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Resizing and Reshaping Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!