MATLAB: Write a script that will convert each numeric value in the vector days into a string named daysOfWeek with the day names separated by a comma and a space.

days of weekif statement

So far I have:
clc,clear
day=input('Enter date of the month ');
if any(day==[3 10 17 24])
dayName = 'Monday' ;
elseif any(day==[4 11 18 25])
dayName = 'Tuesday' ;
elseif any(day==[5 12 19 26])
dayName = 'Wednesday' ;
elseif any(day==[6 13 20 27])
dayName = 'Thursday' ;
elseif any(day==[7 14 21 28])
dayName = 'Friday' ;
elseif any(day==[1 8 15 22 29])
dayName = 'Saturday';
elseif any(day==[2 9 16 23 30])
dayName = 'Sunday';
end
disp(dayName)
However, I am unable to get multiple values to work at once. Any help would be greatly appreciated!

Best Answer

Close, but use a switch statement instead of an if. And use sscanf to get the numbers into a numerical array and use a for loop to process each of the numbers in the list:
clc;
clear;
userInput = input('Enter date of the month (separated by spaces) ', 's')
days = sscanf(userInput, '%f')
for k = 1 : length(days)
switch days(k)
case {3, 10, 17, 24}
dayName = 'Monday' ;
case {4, 11, 18, 25}
dayName = 'Tuesday' ;
case {5, 12, 19, 26}
dayName = 'Wednesday' ;
case {6, 13, 20, 27}
dayName = 'Thursday' ;
case {7, 14, 21, 28}
dayName = 'Friday' ;
case {1, 8, 15, 22, 29}
dayName = 'Saturday';
case {2, 9, 16, 23, 30}
dayName = 'Sunday';
otherwise
dayName = 'Unknown';
end
fprintf('The day of the week for #%d is %s.\n', days(k), dayName);
end