我们如何为数字分配字母

时间:2010-11-01 21:09:53

标签: matlab

我有以下内容:

d = [1 2 3 4 5 6 7]

我希望Matlab通过循环或

为每个数字指定日期名称

任何合适的方法如下:

1 =星期二

2 =星期三

7 =星期一

我打算在运行程序后得到的结果是:

Matlab窗口要求用户输入1到7之间的数字

n =('输入1到7之间的数字')

然后,

如果输入例如4,则表示打印结果为:Friday

如果我们输入例如7,则表示打印结果为:Monday

等等

有没有办法做到这一点

问候

2 个答案:

答案 0 :(得分:5)

您可以使用cell array,它允许您存储一组文本字符串。花括号是关键:

>> weekdays = {'Mon', 'Tues', 'Weds', 'Thurs', 'Fri', 'Sat', 'Sun'};
>> weekdays{4}

ans =

Thurs

编辑:您可以使用MATLAB的input函数从用户那里获取相关的数字:

n = input('Enter your number:');
disp(weekdays{n})

答案 1 :(得分:1)

使用地图可能是一种方法:

weekDays = containers.Map({1, 2, 3, 4, 5, 6, 7} , ...
{'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'});

number = input('enter a number from 1 to 7');
disp(sprintf('You did choose %s\n', weekDays(number)));


修改 使用Bill Cheatham的解决方案,你最终得到了

weekdays = {'Mon', 'Tues', 'Weds', 'Thurs', 'Fri', 'Sat', 'Sun'};
number = input('enter a number from 1 to 7');
disp(sprintf('You did choose %s\n', weekdays{number}));