矩阵维度必须同意在使用

32视图(30天)
唱Heon李
唱Heon李 2017年9月15日
编辑: 马丁Grden2020年10月28日
celestialBody =输入(“天体= ',“年代”);
如果celestialBody = =“月亮”
mass1 = MASS_OF_MOON;
距离= RADIUS_OF_MOON;
elseifcelestialBody = =“水星”
mass1 = MASS_OF_MERCURY;
距离= RADIUS_OF_MERCURY;
其他的
mass1 = 0;
距离= 1;
结束
以上是我的脚本,每当我运行这个脚本,类型celestialBody水银,它说
矩阵尺寸必须同意。
错误在exoweight(16行)
如果celestialBody = =“月亮”
我怎样才能解决这个错误呢?常量的值。

接受的答案

KSSV
KSSV 2017年9月15日
医生 Strcmpi 比较字符串
celestialBody =输入(“天体= ',“年代”);
如果strcmpi (“月亮”celestialBody)
mass1 = MASS_OF_MOON;
距离= RADIUS_OF_MOON;
elseifstrcmpi (“水星”celestialBody)
mass1 = MASS_OF_MERCURY;
距离= RADIUS_OF_MERCURY;
其他的
mass1 = 0;
距离= 1;
结束

更多的答案(2)

1月
1月 2017年9月15日
问题是在
如果celestialBody = =“月亮”
= =操作符elementwise工作。因此,左派和右派的字符串需要相同数量的元素(或一个必须是一个标量字符)。作为建议,使用 比较字符串 strcmpi 比较字符串。
1评论
马丁Grden
马丁Grden 2020年10月28日
编辑:马丁Grden 2020年10月28日
也许MATHWORKS应该提供替代字符串比较,当检查2-value属性(例如timer.Running)。现在,你能做什么:
如果(timer.running(结束)= = ' n ')

登录置评。


Arun Kumar Misra
Arun Kumar Misra 2017年9月15日
编辑:Arun Kumar Misra 2017年9月15日
试试这个工作原理
celestialBody =输入(天体= ',' s ');
如果比较字符串(celestialBody“月亮”)
mass1 = MASS_OF_MOON;
距离= RADIUS_OF_MOON;
elseif比较字符串(celestialBody“水星”)
mass1 = MASS_OF_MERCURY;
距离= RADIUS_OF_MERCURY;
其他的
mass1 = 0;
距离= 1;
结束

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!