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 Commento

Stephen23
Stephen23 il 27 Apr 2021
Modificato: Stephen23 il 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.

Accedi per commentare.

 Risposta accettata

Dyuman Joshi
Dyuman Joshi il 27 Apr 2021
Modificato: Dyuman Joshi il 28 Apr 2021
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 Commenti

Thank you for your answer, but what does x mean in the alternative way?
My bad, that is supposed to be A and not x. I have edited it.

Accedi per commentare.

Più risposte (1)

Steven Lord
Steven Lord il 27 Apr 2021

2 voti

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

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by