logical statements of an array

1 次查看(过去 30 天)
Rick
Rick 2014-6-15
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

回答(3 个)

John D'Errico
John D'Errico 2014-6-15
It is equivalent to:
A(find([0 0 1 1 1]))
  1 个评论
Rick
Rick 2014-6-15
could you explain in words what the command is doing? I'm a little bit stuck on that part.

请先登录,再进行评论。


Star Strider
Star Strider 2014-6-15
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

per isakson
per isakson 2014-6-15

类别

Help CenterFile Exchange 中查找有关 Multidimensional Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by