也将 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)