在Matlab中比较两个矩阵的行式

在Matlab中比较两个矩阵的行式,matlab,Matlab,我有两个矩阵要在Matlab中比较,A维度MxN和C维度MxN。 如果存在I使得A(I,:)不同于C(I,:)或者0,我想得到一个等于1的索引 比如说 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=0(M,N),以及 (2) A只包含0和1,而C=1(M,N)您可以使用isequal执行元素相等,

我有两个矩阵要在Matlab中比较,
A
维度
MxN
C
维度
MxN
。 如果存在
I
使得
A(I,:)
不同于
C(I,:)
或者
0
,我想得到一个等于
1
的索引

比如说

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=0(M,N)
,以及


(2)
A
只包含0和1,而
C=1(M,N)
您可以使用
isequal
执行元素相等,然后用
~
对其求反,以查看是否存在
A
C
不同的情况

index = ~isequal(A, C)
如果
A
C
是浮点数,那么您将不希望使用完全相等的检查,而是使用类似

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

您可以使用
isequal
执行元素相等,然后使用
~
对其求反,以查看是否存在
A
C
不同的情况

index = ~isequal(A, C)
如果
A
C
是浮点数,那么您将不希望使用完全相等的检查,而是使用类似

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

非常感谢。为什么我要为问题的第二部分添加其他条件?对不起,我不明白。假设
A=[11;0110;1011]
C=[0 0;0 0;0 0 0]
。然后
index=~isequal(A,C)
根据需要给我1。其他条件是什么呢?@user3285148但是如果A和C都是零,那么如果A=0(3,3)和C=0(3,3),通过执行
索引=~isequal(A,C),你也会期望1
我得到了想要的零。@user3285148但是如果
A
C
都是零,那么这个标准就满足了:“A只包含零和一,C=0(M,N)”谢谢。为什么我要为问题的第二部分添加其他条件?对不起,我不明白。假设
A=[11;0110;1011]
C=[0 0;0 0;0 0 0]
。然后
index=~isequal(A,C)
根据需要给我1。其他条件是什么呢?@user3285148但是如果A和C都是零,那么如果A=0(3,3)和C=0(3,3),通过执行
索引=~isequal(A,C),你也会期望1
我根据需要得到零。@user3285148但如果
A
C
都是零,则满足此条件:“A只包含零和一,C=0(M,N)”