Logical comparison (>= to be specific) between each element (row) of a column vector, and all elements inside each row of a matrix having same number or rows, respectively
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jonathan Morcos
am 25 Nov. 2020
Kommentiert: Jonathan Morcos
am 25 Nov. 2020
I am wondering if there is a better/faster way to do this, perhaps without a for loop?
Say, I have a 30x50 matrix A, and a 30x1 column vector B. I want to procuce a 30x50 logical matrix C, where each element of C is 1 if the corresponding element of A is greater than or equal to the element of B located on the same row as that element.
For a small example:
>> A = [1 2 3 4 5 6; 7 8 9 10 11 12; 13 14 15 16 17 18];
B = [4 10 16]';
%numbers are in ascending order to simplify example
C = false(3,6);
c = 1;
for k = B'
C(c,:) = (A(c,:) >= k);
c = c + 1;
end
The output:
C
C =
3×6 logical array
0 0 0 1 1 1
0 0 0 1 1 1
0 0 0 1 1 1
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!