フィルターのクリア

How to check ismember in a cell in Matlab?

65 ビュー (過去 30 日間)
SM
SM 2019 年 10 月 24 日
回答済み: SM 2019 年 10 月 24 日
List={[5,2] [27,19] [13,8] [17,14] [3,13] [21,20] [6,16] [4,30] [1,13] [20,2] [14,27];
[5,2] [21,7] [29,6] [17,36] [35,12] [8,20] [35,8] [11,10] [35,23] [22,25] [9,32]};
B={[21 20]};
A=ismember(List{1,:}, B) % it will only check the row of the cell List.
result=[0 0 0 0 0 1 0 0 0 0 0]
is it possible?

採用された回答

Stephen23
Stephen23 2019 年 10 月 24 日
>> List = {[4,5,2],[27,19],[13,8],[17,14],[3,13],[21,20],[6,16],[4,30],[1,13],[20,2],[14,27,2];[5,2],[21,7],[29,6],[17,36],[35,12],[8,20],[35,8],[11,10],[35,23],[22,25],[9,32]};
>> B = {[21,20]}; % why the superfluous cell array?
>> X = cellfun(@(m)isequal(m,B{1}),List(1,:))
X =
0 0 0 0 0 1 0 0 0 0 0

その他の回答 (2 件)

Andrei Bobrov
Andrei Bobrov 2019 年 10 月 24 日
result = cellfun(@(x)all(x == B{:}),List);
  1 件のコメント
SM
SM 2019 年 10 月 24 日
Excellent! But It must be only check the first row. Another issue is that if the first row is replaced by [4, 5,2] [27,19] [13,8] [17,14] [3,13] [21,20] [6,16] [4,30] [1,13] [20,2] [14,27,2]; then it shows error 'Matrix dimensions must agree'. Is it possible to solve now?

サインインしてコメントする。


SM
SM 2019 年 10 月 24 日
Thank you! It works.

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by