Matlab:两个矩阵离散不相等时的if条件

Matlab:两个矩阵离散不相等时的if条件,matlab,formula,Matlab,Formula,我有两个矩阵,取决于选择,还有一些其他的计算。例如,假设: A = 8 9 3 9 6 5 2 1 9 及 现在,我会选择其中一个作为新的matirix C = A; C = B; 如果我使用以下If条件,我将有一个错误 if C==A %do some computation else if C == B %do some other computation else %print an error 因为矩阵的维数

我有两个矩阵,取决于选择,还有一些其他的计算。例如,假设:

A =

 8     9     3
 9     6     5
 2     1     9

现在,我会选择其中一个作为新的matirix

C = A;
C = B;
如果我使用以下
If
条件,我将有一个错误

if C==A
   %do some computation
else if C == B
   %do some other computation
else
   %print an error

因为矩阵的维数不相等,所以我有一个错误。请让我知道如何正确地表达这一点好吗?

您可以为大小添加另一个条件,请注意,如果大小条件不成立,则不会选中第二个条件,因此不会出现错误:

if all(size(C)==size(A)) && all(C==A)
    %do some computation
elseif all(size(C)==size(B)) && all(C == B)
    %do some other computation
else
    %print an error
end

还要注意的是,条件应该是
all(C==A)

MATLAB提供了一个函数来计算数组相等性:

因此,请尝试:

if isequal(C,A)
   %do some computation
else if isequal(C,B)
   %do some other computation
else
   %print an error

注:
isequal
执行与@ItamarKatz code相同的检查;但这是一个内置功能,非常感谢。这正是我要找的。@Saber很高兴你接受了答案。然而,许多人并不以公认的答案来看待问题。我认为最好让它开放一天,这样答案就可以获得更多的选票,海报也可以因为他们的努力而获得更多的价值。@kkuilla我不同意。我宁愿你鼓励人们看看已经回答的问题,希望能提供更好的答案。所以,这不应该是一场人气竞赛。好吧,你可以随心所欲地说出来。许多人看问题时不会给出公认的答案。让它开放一天会增加你得到更多答案的机会。那些读过你(和我)评论的人可能会读到带有公认答案的问题,不需要鼓励。谢谢你的回答。
if isequal(C,A)
   %do some computation
else if isequal(C,B)
   %do some other computation
else
   %print an error