Matlab 如何提取其列元素存在于数组中的矩阵行?
假设我有一个矩阵,M:Matlab 如何提取其列元素存在于数组中的矩阵行?,matlab,Matlab,假设我有一个矩阵,M: 9.89E+10 3.12E+10 29 8.88E+10 8.16E+10 9 9.97E+10 8.31E+10 22 8.10E+10 6.55E+10 94 2.17E+10 8.11E+09 53 6.34E+10 8.84E+10 54 5.69E+10 7.07E+10 8 9.23E+10 8.24E+10 38 8.88E+10 5.81E+10
9.89E+10 3.12E+10 29
8.88E+10 8.16E+10 9
9.97E+10 8.31E+10 22
8.10E+10 6.55E+10 94
2.17E+10 8.11E+09 53
6.34E+10 8.84E+10 54
5.69E+10 7.07E+10 8
9.23E+10 8.24E+10 38
8.88E+10 5.81E+10 27
我还有另一个数组,一个:
A=8.88E+10, 9.23E+10
我希望M中的所有条目都包含A中的所有条目。也就是说,我的输出应该是一个矩阵,N:
8.88E+10 8.16E+10 9
9.23E+10 8.24E+10 38
8.88E+10 5.81E+10 27
我可以使用如下代码来完成此操作:
count=1;
for i=1:size(A,1)
for j=1:size(M,1)
if M(j,1)==A(i,1)
extracted(count,:)=M(j,:);
count=count+1;
end
end
end
但我想MATLAB中可能有一个单行程序代码来实现这一点。有没有?一套解决方案
N = M(sum(ismember(M,A),2)>0,:);
解释
N = M(sum(ismember(M,A),2)>0,:);
N =
8.88E+10 8.16E+10 9
9.23E+10 8.24E+10 38
8.88E+10 5.81E+10 27