Octave (または Matlab) で 2 つの構造体の等価性を比較するにはどうすればよいですか?
== 演算子を使用しようとすると、次の結果になります。
binary operator `==' not implemented for `scalar struct' by `scalar struct' operations
ベストアンサー1
isequal
または関数のいずれかを使用しますisequalwithequalnans
。コード例:
s1.field1 = [1 2 3];
s1.field2 = {2,3,4,{5,6}};
s2 = s1;
isequal(s1,s2) %Returns true (structures match)
s1.field3 = [1 2 nan];
s2.field3 = [1 2 nan];
isequal(s1, s2) %Returns false (NaN ~= NaN)
isequalwithequalnans(s1, s2) %Returns true (NaN == NaN)
s2.field2{end+1}=7;
isequal(s1,s2) %Returns false (different structures)
isequal(s1, 'Some string') %Returns false (different classes)