Matlab结构:如何比较结构的内容?正在获取以下错误



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

输入

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()函数。以下是两种实现:

方法1:使用双引号

条件为真:

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运行

最新更新