也将 B 置于矩阵格式中,例如:
B=[6 9; 32 4];
这是您可以用来执行此操作的 MATLAB 代码:
k=0;
output=[];
for n=1:5
for m=1:2
if (sum(A(n,1:2)==B(m,:)) == 2)
k = k +1;
output(k) = n;
end
end
end
你的结果在output
.
编辑:
我正在添加对该行的解释(sum(A(n,1:2)==B(m,:)) == 2)
。让我们一块一块地看。A(n, 1:2)
给我们一个 1x2 向量,它是 的第 n 行的前两列A
。B(m,:)
也是一个 1x2 向量,因为 B 只有两列。所以假设我们现在[6 9]
从最后一行A
和[6 9]
第一行开始B
。
[6 9] == [6 9]
在命令行中尝试。结果是一个逻辑向量:[1 1]
。原因是==
它将逐个元素地比较向量。所以第一个 1 是因为 6 等于 6,第二个告诉我们 9 相等。如果你尝试[6 9] == [7 9]
你会得到[0 1]
,因为第一个元素现在不同了。
因此,为了评估两个元素是否相同,我们期望运算符产生的向量之和==
等于 2。如果它等于 1,那么只有一个元素是相同的,我们需要它为 2 来表示整个向量相等(2 因为向量只有 2 个元素)。所以sum([6 9] == [6 9])
给2
但sum([7 9] == [6 9])
只给1
。
因此,测试一行是否相等的条件是if (sum(A(n,1:2)==B(m,:)) == 2)