Warm tip: This article is reproduced from serverfault.com, please click

其他-Matlab结构:如何比较结构的内容?

(其他 - Matlab Structures: How to compare the contents of structure? Getting the following error)

发布于 2020-11-30 00:52:59

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

输入

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'
Questioner
Vinod
Viewed
0
MichaelTr7 2020-11-30 14:25:53

看起来问题在于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

方法2:使用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跑