如何比较matlab细胞或结构

urs*_*rso 14 matlab struct cells

可能重复:
Octave/MATLAB:如何比较结构的相等性?

是否有matlab单元格或结构对象的简单比较函数?使用'=='似乎不起作用:(

b3.*_*b3. 8

如果您想知道两个单元格数组或结构对象是否完全相等,您可以始终使用isequaln.


Gre*_*reg 6

使用isequal比较两个细胞.但请注意,==即使对于数组也不建议:

>> A = [1 2 3 4 5];
>> B = [1 2 3 4 5];
>> A == B
ans =

     1     1     1     1     1
Run Code Online (Sandbox Code Playgroud)

例如,您需要使用另一个技巧在if语句中使用该表达式.

==不推荐使用类型变量的原因是double因为MATLAB使用了IEEE 754表示法.例如:

  >> .1 + .1 + .1 == .3

  ans =

       0
Run Code Online (Sandbox Code Playgroud)

为了更加健壮地比较双值,可以abs在MATLAB中使用该函数:

>> if ( abs( (.1+.1+.1) - .3 ) < 1e-10 ); disp('Values are pretty close although not necessarily bit equal'); end
Values are pretty close although not necessarily bit equal
>> 
Run Code Online (Sandbox Code Playgroud)