14

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

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

4

2 回答 2

8

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

于 2011-02-24T18:12:14.440 回答
6

用于isequal比较两个单元格。但是请注意,==即使对于数组也不建议这样做:

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

     1     1     1     1     1

例如,您需要使用进一步的技巧来在 if 语句中使用该表达式。

==不推荐用于类型变量的原因是doubleMATLAB 使用 IEEE 754 表示。例如:

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

  ans =

       0

为了更稳健地比较双精度值,您可以使用absMATLAB 中的函数:

>> 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
>> 
于 2011-02-25T11:08:37.800 回答