比较Matlab中的行式两个矩阵

时间:2017-03-21 21:46:37

标签: matlab

我有两个矩阵可以在Matlab中进行比较,A维度MxNC维度MxN。 如果1 iA(i,:)C(i,:)不同,我希望获得等于0的索引。

例如

A=[1 2 3; 4 5 6; 7 8 9];
C=[1 2 3; 4 5 6; 10 11 12];
index=1;

我想要最快的代码。

另外,对于

的情况,您是否可以提供代码的第二个版本(如果与之前不同)

(1)A仅包含0和1 C=zeros(M,N)

(2)A仅包含0和1 C=ones(M,N)

1 个答案:

答案 0 :(得分:3)

您可以使用isequal执行元素相等,然后使用~对其进行否定,以查看是否存在AC不同的任何情况。

index = ~isequal(A, C)

如果AC是浮点数,那么您将不希望使用完全等式检查并使用类似

的内容
index = ~any(abs(A(:) - C(:)) < eps);

至于问题的第二部分,你必须添加一个额外的条件

index = ~isequal(A, C) || ...
        (all(ismember(A(:), [0 1])) && (all(C(:) == 0) || all(C(:) == 1)));