Function that returns 2 values

8 views (last 30 days)
Spaceman
Spaceman on 19 Mar 2024
Answered: Spaceman on 23 Mar 2024
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 Comments
Steven Lord
Steven Lord on 21 Mar 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
Spaceman on 23 Mar 2024
Genius. Thanks to ALL of your expert advice, I think I got it in the right direction.
function [Z,P]=myfun(A)
Z=length(A(A==0));
P=prod(A(A>2));
end
% Code used to call funtion:
A=randi([-5 5],40);
[Nzero,prod2]=myfun(A)

Sign in to comment.

Accepted Answer

Spaceman
Spaceman on 23 Mar 2024
function [Z,P]=myfun(A)
Z=length(A(A==0));
P=prod(A(A>2));
end
% Code used to call funtion:
A=randi([-5 5],40);
[Nzero,prod2]=myfun(A)

More Answers (0)

Tags

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!