MatLab:如果前两个矩阵的行元素相同,则创建矩阵行元素

时间:2014-11-26 11:53:46

标签: matlab if-statement matrix intersection

对不起标题。我想不出更好的东西。

我有以下问题。

我有两个四列矩阵构建如下:

财产| X | Y | ž

两个矩阵具有不同的大小,因为矩阵1与矩阵2相比具有大量额外行。

我想做的是以下内容:

我需要创建一个第三个矩阵,它只包含那些(大矩阵)行(X,Y和Z列)与matrix2中的行相同(属性列总是不同)。

我尝试了一个if语句,但由于我的编程语法,它并没有真正解决。有人提示吗?

谢谢!

我试过这样的事情:(在这种情况下,A是更大的矩阵,我希望它的X,Y,Z位置的属性列与另一个矩阵B相同。我对MatLab语法很糟糕。

if (A(:,2) == B(:,2) and (A(:,3) == B(:,3) and  (A(:,4) == B(:,4)) 

newArray(:,1) = A(:,1); 

1 个答案:

答案 0 :(得分:0)

使用ismember'rows'选项查找所需的行,然后将其用作索引来构建结果:

ind = ismember(A(:,2:4), B(:,2:4), 'rows');
C = A(ind,:);

如果最后三列与A任意行匹配,我假设选择了B行。