Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Matlab中的二维矩阵行交_Arrays_Matlab_Matrix_Vectorization - Fatal编程技术网

Arrays Matlab中的二维矩阵行交

Arrays Matlab中的二维矩阵行交,arrays,matlab,matrix,vectorization,Arrays,Matlab,Matrix,Vectorization,我将通过一个例子来解释我需要什么 假设有一个矩阵x,如下所示: 1 2 3 4 5 6 1 4 5 7 4 8 1 4 另一个矩阵y如下所示: 1 2 3 4 5 6 1 4 5 7 4 8 1 4 我需要的是(不在行上循环)在x&y中的每两个对应行之间执行交集。我希望得到一个矩阵z,如下所示: 1 2 3 4 5 6 1 4 5 7 4 8 1 4 x和y中的第一行只有1作为公共值。第二行的公共值为4 编辑: 我忘了补充一点,在我的例子中,可以保证相交结果具有相同的长度,实际

我将通过一个例子来解释我需要什么

假设有一个矩阵x,如下所示:

1 2 3
4 5 6
1 4 5
7 4 8
1
4
另一个矩阵y如下所示:

1 2 3
4 5 6
1 4 5
7 4 8
1
4
我需要的是(不在行上循环)在x&y中的每两个对应行之间执行交集。我希望得到一个矩阵z,如下所示:

1 2 3
4 5 6
1 4 5
7 4 8
1
4
x和y中的第一行只有1作为公共值。第二行的公共值为4

编辑:
我忘了补充一点,在我的例子中,可以保证相交结果具有相同的长度,实际上长度始终为1。

我们的想法是将矩阵放在一起,并在行中查找重复项。查找重复数值的一个方法是
diff
它们;结果中的值0将标记重复项

这导致:

%'Initial data'
A = [1 2 3; 8 5 6];
B = [1 4 5; 7 4 8]; 

%'Look in merged data'
V = sort([A,B],2);      %'Sort matrix values in rows'
R = V(diff(V,1,2)==0);  %'Find duplicates in rows'

这应该适用于任何数量的可以水平连接的矩阵。它将检测所有重复项,但只有当矩阵中每行有一个且只有一个重复项时,它才会返回与行数相同大小的列。

方法是将矩阵放在一起,并在行中查找重复项。查找重复数值的一个方法是
diff
它们;结果中的值0将标记重复项

这导致:

%'Initial data'
A = [1 2 3; 8 5 6];
B = [1 4 5; 7 4 8]; 

%'Look in merged data'
V = sort([A,B],2);      %'Sort matrix values in rows'
R = V(diff(V,1,2)==0);  %'Find duplicates in rows'
这应该适用于任何数量的可以水平连接的矩阵。它将检测所有重复项,但只有当矩阵中每行有一个且只有一个重复项时,它才会返回与行数相同大小的列。

我在想-

样本运行-

运行#1:

运行#2:

我在想-

样本运行-

运行#1:

运行#2:


当一行中有两个公共值时会发生什么?我认为矩阵结果的想法不适用于结果……在我的例子中,它保证了相交结果的长度相同,实际上长度始终为1。谢谢你的评论,我应该把它添加到问题中,当一行中有两个公共值时会发生什么?我认为矩阵结果的想法不适用于结果……在我的例子中,它保证了相交结果的长度相同,实际上长度始终为1。谢谢你的评论,我应该把它添加到question@rayryeng哦,对不起,我猜@rayryeng哈哈,说到使用
bsxfun
,我从不后悔:D@rayryeng哦,对不起,我猜@rayryeng哈哈,说到使用bsxfun,我从不后悔:D