如何找到包含 randperm 元素的 2 个元胞数组的公共元素?
How to find the common elements of 2 cell arrays that contain randperm elements?
我有两个元胞数组,它们的大小可能不同。元胞数组的元素是 randperm
个整数。 randperm
数据类型为双精度数组。如何找到两个元胞数组的共同元素?
例如:
Q1 = {[1 2 3 4], [3 2 4 1], [4 2 1 3]}
Q2 = {[2 4 3 1], [1 2 3 4], [1 2 4 3]}
正如我所说,元胞数组的元素是 randperm
。我希望上面示例的输出是“Q1
的元素 1,即 [1 2 3 4]
,因为它也存在于 Q2
中。
注意:元胞数组的列数可能不同...
Vertically concatenate the matrices inside the cell arrays and use intersect
with the 'rows'
标志。即
Q1={[1 2 3 4], [3 2 4 1], [4 2 1 3]};
Q2={[2 4 3 1], [1 2 3 4], [1 2 4 3]};
Qout = intersect(vertcat(Q1{:}), vertcat(Q2{:}), 'rows');
%>> Qout
%Qout =
% 1 2 3 4
你可以通过使用两个循环来完成,然后将它们全部选中。
q1=[1 2 3 4; 3 2 4 1; 4 2 1 3];
q2=[2 4 3 1; 1 2 3 4; 1 2 4 3];
%find the size of matrix
[m1,n1] = size(q1);
[m2] = size(q2,1);
for (ii=1:m1)
for (jj=1:m2)
%if segments are equal, it will return 1
%if sum of same segment = 4 it means they are same
if ( sum( q1(ii,:) == q2(jj,:) ) == n1)
ii %result of q1
jj %result of q2
break;
end
end
end
我有两个元胞数组,它们的大小可能不同。元胞数组的元素是 randperm
个整数。 randperm
数据类型为双精度数组。如何找到两个元胞数组的共同元素?
例如:
Q1 = {[1 2 3 4], [3 2 4 1], [4 2 1 3]}
Q2 = {[2 4 3 1], [1 2 3 4], [1 2 4 3]}
正如我所说,元胞数组的元素是 randperm
。我希望上面示例的输出是“Q1
的元素 1,即 [1 2 3 4]
,因为它也存在于 Q2
中。
注意:元胞数组的列数可能不同...
Vertically concatenate the matrices inside the cell arrays and use intersect
with the 'rows'
标志。即
Q1={[1 2 3 4], [3 2 4 1], [4 2 1 3]};
Q2={[2 4 3 1], [1 2 3 4], [1 2 4 3]};
Qout = intersect(vertcat(Q1{:}), vertcat(Q2{:}), 'rows');
%>> Qout
%Qout =
% 1 2 3 4
你可以通过使用两个循环来完成,然后将它们全部选中。
q1=[1 2 3 4; 3 2 4 1; 4 2 1 3];
q2=[2 4 3 1; 1 2 3 4; 1 2 4 3];
%find the size of matrix
[m1,n1] = size(q1);
[m2] = size(q2,1);
for (ii=1:m1)
for (jj=1:m2)
%if segments are equal, it will return 1
%if sum of same segment = 4 it means they are same
if ( sum( q1(ii,:) == q2(jj,:) ) == n1)
ii %result of q1
jj %result of q2
break;
end
end
end