A = [-1 -2 0 1 2];
B = A(A<0);
What does A(A<0) mean exactly? and is there a way to do its function with an if statement? because I tried this and it did not work.
if A<0
B = A;
end

1 Kommentar

Stephen23
Stephen23 am 27 Apr. 2021
Bearbeitet: Stephen23 am 27 Apr. 2021
"What does A(A<0) mean exactly?"
A(A<0)
^^^ logical index
^^ ^ indexing into A
Basic MATLAB concepts, like how to use indexing, are explained here:
"and is there a way to do its function with an if statement?"
It could be done with a bit of effort, but that would be a very poor use of MATLAB.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Dyuman Joshi
Dyuman Joshi am 27 Apr. 2021
Bearbeitet: Dyuman Joshi am 28 Apr. 2021

2 Stimmen

B = A(A<0) means to allocate all the elements of A which are less than zero to B.
In case you want to use if statement to obtain the same, use a for loop as follows -
B=[];
for i=1:numel(A)
if A(i)<0
B = [B A(i)];
end
end
However, using B = A(A<0) should be opted.

2 Kommentare

Mashari Alharbi
Mashari Alharbi am 27 Apr. 2021
Thank you for your answer, but what does x mean in the alternative way?
Dyuman Joshi
Dyuman Joshi am 28 Apr. 2021
My bad, that is supposed to be A and not x. I have edited it.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Steven Lord
Steven Lord am 27 Apr. 2021

2 Stimmen

That operation is logical indexing. Also see the "Indexing with Logical Values" section on this documentation page for more information.

Kategorien

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by