please help with logical operators
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
if true
fprintf('Enter the old units of volume:\n')
old=input('cubic meter or liter or cubic feet or gallons\n','s');
V=input('Enter the value of volume\n');
fprintf('Enter the new units of volume into which old value os to be converted:\n')
new=input('cubic meter or liter or cubic feet or gallons\n','s');
%old units to cubic meter untis
if length(old)==10
V1=V;
end
if lenght(old)==5
V1=V*(1/1000);
end
if lenght(old)==9
V1=V*(1/35.3146);
end
if length(old)==7
V1=V*(1/264.172);
end
%cubic meter to new desired units
if lenght(new)==10
Vnew=V1;
end
if lenght(new)==5
Vnew=V1*1000;
end
if lenght(new)==9
Vnew=V1*35.3146;
end
if lenght(new)==7
Vnew=V1*264.172;
end
fprintf('The value of volume in the new desired units = %5.2f\n',Vnew)
end
I just keep having a problem with this syntax, this is the error code I get
??? Undefined function or method 'lenght' for input arguments of type 'char'.
do you have any tips on how to approach this with out changing too much the format that I have already , thanks
3 commentaires
Matt Kindig
le 25 Juil 2013
Also, I know you don't want to change the format of the code much, but another way to do this is through switch statements:
switch length(old),
case 10,
Vnew=V1;
case 5,
Vnew=V1*1000;
%etc.
end
Matt Kindig
le 25 Juil 2013
Modifié(e) : Matt Kindig
le 25 Juil 2013
Or, a vectorized approach, just for your education:
ScaleFactors = [1 1000 35.3146 264.172];
Units = {'cubic meter', 'liter', 'cubic feet', 'gallons'};
fprintf('Enter the old units of volume:\n')
old=input('cubic meter or liter or cubic feet or gallons\n','s');
V=input('Enter the value of volume\n');
fprintf('Enter the new units of volume into which old value os to be converted:\n')
new=input('cubic meter or liter or cubic feet or gallons\n','s');
matchPos = strcmpi(strtrim(old), Units);
V1 = V/ScaleFactors(matchPos); %convert from old units
matchPos = strcmpi(strtrim(new), Units);
Vnew = V1*ScaleFactors(matchPos); %convert to new units
fprintf('The value of volume in the new desired units = %5.2f\n',Vnew)
Réponses (1)
Voir également
Catégories
En savoir plus sur Geometric Transformation and Image Registration dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!