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