【问题标题】:Matlab: if condition when diemnsion of two matrices are not equalMatlab:如果条件则两个矩阵的维度不相等
【发布时间】:2015-02-19 10:18:10
【问题描述】:

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

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

因为矩阵的维度不相等,所以我有一个错误。请您告诉我如何以正确的方式表述这一点?

【问题讨论】:

    标签: matlab formula


    【解决方案1】:

    MATLAB 提供了一个评估数组相等性的函数:isequal

    那就试试吧:

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

    【讨论】:

    【解决方案2】:

    可以为size添加另外一个条件,注意如果size条件不成立,则不勾选第二个条件,所以不会报错:

    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)

    【讨论】:

    • 感谢您的回答。
    猜你喜欢
    • 2018-04-28
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多