Matlab:如果两个矩阵的维度不相等时的条件

Matlab: if condition when diemnsion of two matrices are not equal

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

A =

 8     9     3
 9     6     5
 2     1     9

B =

 11     9    11     8     2
  2     2     8     9     8
 11     5     1     9     1
 11    11    10     5     4
  6     9    11     8     1

现在,我会选择其中之一作为新矩阵

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 提供了一个计算数组相等性的函数:isequal.

所以尝试:

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