logical statements of an array

Given A = [2, 4, 6, 8, 10];
I don't understand what this command is actually doing A(logical([0, 0, 1, 1, 1]))
This is what it produces
ans =
6 8 10

Réponses (3)

John D'Errico
John D'Errico le 15 Juin 2014

1 vote

It is equivalent to:
A(find([0 0 1 1 1]))

1 commentaire

Rick
Rick le 15 Juin 2014
could you explain in words what the command is doing? I'm a little bit stuck on that part.

Connectez-vous pour commenter.

Star Strider
Star Strider le 15 Juin 2014

1 vote

The command essentially works like the ‘if’ block inside the ‘for’ loop as it considers each element of logical array ‘L’ in turn:
A = [2, 4, 6, 8, 10];
L = [0 0 1 1 1]; % ‘0’ = ‘false’, ‘1’ = ‘true’
B = []; % Array ‘B’ is initially empty
for k1 = 1:length(A)
if L(k1) == 1 % If an element of ‘L’ is ‘true’
B = [B A(k1)]; % Add that element to array ‘B’
end
end

Catégories

En savoir plus sur Data Type Identification dans Centre d'aide et File Exchange

Question posée :

le 15 Juin 2014

Community Treasure Hunt

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

Start Hunting!

Translated by