フィルターのクリア

logical statements of an array

1 回表示 (過去 30 日間)
Rick
Rick 2014 年 6 月 15 日
回答済み: per isakson 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 Center および File ExchangeData Type Identification についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by