Remake this without a loop
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
How to rewrite this without using a loop?
Basically I want to replace elements in matrix A with 0, that are equal to any of element in vector "vector"
vector = [A(A >= 1.5)].' % Vector, don't change.
for i = 1:vector
A(A == vector(i)) = 0;
end
0 Kommentare
Akzeptierte Antwort
the cyclist
am 17 Okt. 2021
% Pretend data
A = 1 : 7;
vector = [2 3 5];
% Replace values of A with 0, if they are in vector
A(ismember(A,vector)) = 0
0 Kommentare
Weitere Antworten (1)
DGM
am 17 Okt. 2021
Bearbeitet: DGM
am 17 Okt. 2021
What's wrong with just using the test you're already doing? In the case you've given, the vector is unnecessary.
A(A >= 1.5) = 0;
Or more generally, if you actually need to test against another set,
A = randi(5,5,8)
v = [3 4];
A(ismember(A,v)) = 0;
0 Kommentare
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!