Effacer les filtres
Effacer les filtres

Matrix dimensions must agree while using if

10 vues (au cours des 30 derniers jours)
Sang Heon Lee
Sang Heon Lee le 15 Sep 2017
Modifié(e) : Martin Grden le 28 Oct 2020
celestialBody = input('Celestial body = ','s');
if celestialBody == 'moon'
mass1 = MASS_OF_MOON;
distance = RADIUS_OF_MOON;
elseif celestialBody == 'mercury'
mass1 = MASS_OF_MERCURY;
distance = RADIUS_OF_MERCURY;
else
mass1 = 0;
distance = 1;
end
Above is my script and whenever I run this script, type the celestialBody as mercury, it says
Matrix dimensions must agree.
Error in exoweight (line 16)
if celestialBody == 'moon'
how can I solve this error? the values for the constants are set.

Réponse acceptée

KSSV
KSSV le 15 Sep 2017
doc Strcmpi or strcmp
celestialBody = input('Celestial body = ','s');
if strcmpi('moon',celestialBody)
mass1 = MASS_OF_MOON;
distance = RADIUS_OF_MOON;
elseif strcmpi('mercury',celestialBody)
mass1 = MASS_OF_MERCURY;
distance = RADIUS_OF_MERCURY;
else
mass1 = 0;
distance = 1;
end

Plus de réponses (2)

Jan
Jan le 15 Sep 2017
The problem is in
if celestialBody == 'moon'
The == operator works elementwise. Therefore the strings on the left and the right need to have the same number of elements (or one must be a scalar character). As suggested already, use strcmp or strcmpi to compare strings.
  1 commentaire
Martin Grden
Martin Grden le 28 Oct 2020
Modifié(e) : Martin Grden le 28 Oct 2020
Maybe MATHWORKS should offer a substitute to doing string comparisons, when checking a 2-value property (for ex. timer.Running). For now, you can do:
if (timer.running(end)=='n')
...

Connectez-vous pour commenter.


Arun Kumar Misra
Arun Kumar Misra le 15 Sep 2017
Modifié(e) : Arun Kumar Misra le 15 Sep 2017
try this it works
celestialBody = input('Celestial body = ','s');
if strcmp(celestialBody,'moon')
mass1 = MASS_OF_MOON;
distance = RADIUS_OF_MOON;
elseif strcmp(celestialBody,'mercury')
mass1 = MASS_OF_MERCURY;
distance = RADIUS_OF_MERCURY;
else
mass1 = 0;
distance = 1;
end

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by