looking up entire matrix for if then loop
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Given A=[1 2 3 4 5 ]
- I want to see when A > 1 and count how many times that was true (output should be 4 times)
- I want to see when A > 2 and count how many times that was true (output should be 3 times)
- I want to see when A > 3 and count how many times that was true (output should be 2 times)
- I want to see when A > 4 and count how many times that was true (output should be 1 time)
- I want to see when A > 5 and count how many times that was true (output should be 0 time)
I tried using below approach, but it does not output what I intended. I think it is only looking at one cell at a time.
is there a way to look entire matrix and get the count?
clear
n=5;
count=0;
r=exprnd(5,1,n);
for x=1:n
if r > x
count=count+1;
a(x)=count; %record output
else
count=count;
a(x)=count; %record output
end
end
0 commentaires
Réponse acceptée
Ameer Hamza
le 3 Nov 2020
Here is a loop-free simpler way
n=5;
count=0;
r=exprnd(5,1,n);
a = sum(r(:) > (1:n))
Result
>> r
r =
1.3006 15.7725 4.8618 1.7525 1.5769
>> a
a =
5 2 2 2 1
2 commentaires
Ameer Hamza
le 3 Nov 2020
Yes, a very powerful aspect of MATLAB is vectorization, which makes the implementation of mathematical operations much simpler.
I am glad to be of help!
Plus de réponses (1)
Mathieu NOE
le 3 Nov 2020
hello
why not simply do that (example for when A > 1 and count how many times that was true (output should be 4 times)
A=[1 2 3 4 5 ];
k = find(A>1);
count = length(k);
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!