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
我有两个矩阵取决于选择会有一些其他计算。例如假设:
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