If loop on lists for counting elements

2 Ansichten (letzte 30 Tage)
Gorbz
Gorbz am 5 Aug. 2021
Beantwortet: KSSV am 5 Aug. 2021
I have two lists
A0 = [1,3,5,9];
A1 = [2,5,1,0];
and I want to make counts of how many elements in A0 are smaller than A1. I define:
counter0 = 0;
counter1 = 0;
and then the for loop:
for k=1:length(A0)
if A0(k)>A1(k)
counter0 = counter0 + 1
else if A0(k)<A1(k)
counter1 = counter1 + 1
end
end
end
So the result should had been:
counter0 = 2
counter1 = 2
But this loop will not work for me. How can I make it functional?

Antworten (3)

Awais Saeed
Awais Saeed am 5 Aug. 2021
You do not need a loop for this, just use
A0 = [1,3,5,9];
A1 = [2,5,1,0];
count = length(find(A0<A1))

KSSV
KSSV am 5 Aug. 2021
A0 = [1,3,5,9];
A1 = [2,5,1,0];
iwant = 0 ;
for i = 1:length(A0)
t = nnz(A0(i)<A1) ;
iwant = iwant+t ;
end

KSSV
KSSV am 5 Aug. 2021
A0 = [1,3,5,9];
A1 = [2,5,1,0];
idx = A0' < A1 ;
iwant = nnz(idx(:)) ;

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by