Comparing arrays and getting the index of extra rows
1 回表示 (過去 30 日間)
古いコメントを表示
There are two arrays: A with 8916x3 and B with 6571x3. Each 1x3 set represents xyz coordinates. Array A has some extra coordinates/rows.
I want to compare xyz row by row, and return the index of rows in A that do not exist in B. Then use this index to remove the corresponding extra data from array C (basically C is 8916x3 and it has to be 6571x3 same as B, while keeping the order of rows).
Here's my code but I ge this error: "too many outputs"
[logic,index] =not(ismember(A,B,'rows'))
C(index,:) = [];
0 件のコメント
採用された回答
DGM
2021 年 11 月 2 日
Consider:
% example arrays
B = randi(99,5,3)
A = [B; randi(99,3,3)];
A = A(randperm(size(A,1)),:)
% i'm assuming C is some separate array?
C = rand(size(A))
% extract rows from C where A is a member of B, preserving order
C = C(ismember(A,B,'rows'),:)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!