Matlab Structures:如何比较结构的内容?收到以下错误

Matlab Structures: How to compare the contents of structure? Getting the following error

我有下面的结构和值。当我尝试比较字段的值时,出现以下错误。我能做什么?

输入

XYZ.Element_2 =='Fundamental'
if XYZ.Element_2 == 'RMS'
    var33=1
else
    var33=0
end

输出

Matrix dimensions must agree.

Error in sample50main (line 38)
if XYZ.Element_2 == 'RMS'

问题似乎是 MATLAB 正在尝试进行字符数组比较,由于这些数组的字符数不同,因此引发了维度错误。可以通过使用双引号 "" 进行字符串比较来解决此问题。或者,您可以使用上面评论中描述的 strcmp() 函数。以下是两种实现方式:

方法一:使用双引号

条件为真:

XYZ.Element_2 = 'Fundamental';

if XYZ.Element_2 == "RMS"
    var33 = 1;
else
    var33 = 0;
end

条件为假:

XYZ.Element_2 = 'RMS';

if XYZ.Element_2 == "RMS"
    var33 = 1;
else
    var33 = 0;
end

方法二:使用strcmp()函数

条件为真:

XYZ.Element_2 = 'Fundamental';

if strcmp(XYZ.Element_2,'RMS')
    var33 = 1;
else
    var33 = 0;
end

条件判断:

XYZ.Element_2 = 'RMS';

if strcmp(XYZ.Element_2,'RMS')
    var33 = 1;
else
    var33 = 0;
end

运行 使用 MATLAB R2019b