Find equal rows between cell array and matrix into for loop
1 回表示 (過去 30 日間)
古いコメントを表示
Hi everybody,
i have a matrix (A) and a cell array (B) as follow:
A
-0.11 7.17 3.66
-0.09 3.45 1.55
-0.21 2.17 9.87
-0.14 4.88 6.66
B{1,1} B{1,2}
-0.09 3.45 1.55 -0.14 4.88 6.66
I need to detect the number of row of A equal to B{1,1} and B{1,2}. In this exemple i need to create a matrix or a cell array C as follow:
C
2
4
Thank you very much!
Riccardo
0 件のコメント
採用された回答
Bruno Luong
2019 年 7 月 18 日
編集済み: Bruno Luong
2019 年 7 月 18 日
Try this:
A=[-0.11 7.17 3.66
-0.09 3.45 1.55
-0.21 2.17 9.87
-0.14 4.88 6.66]
B{1,1} = [-0.09 3.45 1.55]
B{1,2} = [-0.14 4.88 6.66]
C = find(ismember(A,cat(1,B{:}),'row'))
2 件のコメント
Bruno Luong
2019 年 7 月 18 日
bnum = repelem((1:numel(B))',cellfun('size',B(:),1))
[tf,bloc] = ismember(A,cat(1,B{:}),'row');
C = [find(tf),bnum(bloc(tf))]
その他の回答 (1 件)
Alex Mcaulley
2019 年 7 月 18 日
A = [
-0.11 7.17 3.66
-0.09 3.45 1.55
-0.21 2.17 9.87
-0.14 4.88 6.66];
B = {[-0.09 3.45 1.55],[-0.14 4.88 6.66]};
[~,C] = ismember(cell2mat(B'),A,'rows')
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!