How do I add the command lower() to my code? Also I'm supposed to use sort() but I don't know where or what for.
1 次查看(过去 30 天)
显示 更早的评论
This is my code:
disp('Welcome to the HONDA Price Statistics Report!');
disp(' ');
company = input('Enter the name of the company: ','s');
model = input('Enter the Model and Trim level: ','s');
correct = false;
while~correct
price = input('Enter the input vector inside brackets of at least 6 values greater than 15,000[]: ');
if length(price) < 6
disp('You must enter at least 6 values all of which must be greater than $15,000');
else
if min(price) <= 15000
disp('You must enter at least 6 values all of which must be greater than $15,000');
else
correct = true;
end
end
end
stat1 = input('Enter the name of the first statistic to calculate: ','s');
stat2 = input('Enter the name of the second statistic to calculate: ','s');
stat3 = input('Enter the name of the third statistic to calculate: ','s');
[res1,res2,res3] = HONDA_Statistics(stat1, stat2, stat3, price);
fprintf('\nCompany Name: %s\n', company);
fprintf('Model Name and The Trim Level: %s\n', model);
fprintf('The %s is: %5.2f\n', stat1, res1);
fprintf('The %s is: %5.2f\n', stat2, res2);
fprintf('The %s is: %5.2f\n', stat3, res3);
disp('Goodbye!');
And this is my user-made function:
function [res1,res2,res3] = HONDA_Statistics(stat1, stat2, stat3, price)
res1 = [];
res2 = [];
res3 = [];
if isequal('mean', stat1)
res1 = mean(price);
else
if isequal('std',stat1)
res1 = std(price);
else
if isequal('median', stat1)
res1 = median(price);
else
disp('Input Invalid')
end
end
end
if isequal('mean', stat2)
res2 = mean(price);
else
if isequal('std',stat2)
res2 = std(price);
else
if isequal('median', stat2)
res2 = median(price);
else
disp('Input Invalid')
end
end
end
if isequal('mean', stat3)
res3 = mean(price);
else
if isequal('std',stat3)
res3 = std(price);
else
if isequal('median', stat3)
res3 = median(price);
else
disp('Input Invalid')
end
end
end
0 个评论
回答(1 个)
Dyuman Joshi
2022-3-6
Use lower() to convert all the input from the user to lowercase. User may input - 'Mean', 'MEAN', etc etc. Instead of checking all options convert them to lowercase and proceed further.
sort() was probably asked to use to get the minimum value but you used min()
Also, switch case would be a better option here than to use multiple if statements.
switch lower(stat1)
case 'mean'
res1=mean(price);
case 'std'
res1=std(price);
case 'median'
res1=median(price);
otherwise
disp('Input Invalid')
end
Extra tip - If you can use varargin, you can make it a loop instead of doing it 3 times.
5 个评论
Dyuman Joshi
2022-3-7
Try this -
stat1 = input('Enter the name of the first statistic to calculate: ','s');
if isequal(lower(stat1),'mean')
res1=mean(price);
elseif isequal(lower(stat1),'std')
res1=std(price);
elseif isequal(lower(stat1),'median')
res1=median(price);
else disp('Input Invalid');
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Descriptive Statistics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!