【问题标题】:How can we assign letters to numbers我们如何为数字分配字母
【发布时间】:2010-11-02 06:17:25
【问题描述】:

我有以下:

d=[1 2 3 4 5 6 7]

我希望 Matlab 通过循环或为每个数字分配一个日期名称

任何合适的方法如下:

1 =星期二

2=星期三

.

.

.

7=星期一

运行程序后我想要得到的结果是:

Matlab 窗口要求用户输入一个从 1 到 7 的数字

n=('输入一个从 1 到 7 的数字')

那么,

如果我们输入,例如 4 ,这意味着打印的结果是:Friday

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

等等

有什么办法吗

问候

【问题讨论】:

标签: matlab


【解决方案1】:

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

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

ans =

Thurs

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

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

【讨论】:

  • 好方法,只要您不想更改(添加、删除)元素。这在工作日很少见。
【解决方案2】:

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

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}));

【讨论】:

  • 谢谢。但是这个函数是什么:containers.Map。我正在使用 MATLAB。我认为那里没有定义。问候
  • @g_kfupm:你使用的是什么版本的 MATLAB。
  • @g_kfupm:它是 Java,但在 MATLAB 中有一个 Java 解释器,它可以像宣传的那样工作。
  • @André Caron:很抱歉不同意,但 container.Map 是 MATLAB 命令的一部分。由于 MATLAB 允许编写 Java 脚本,因此您也可以使用 Java hashmap。
  • Containers.Map 已添加到 MATLAB 7.7 (R2008b) 中,如 stackoverflow.com/questions/3591942/hash-tables-in-matlab/… 中所述
猜你喜欢
  • 2017-05-31
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 2022-07-13
  • 2014-02-19
  • 2017-12-16
  • 1970-01-01
  • 2022-10-15
相关资源
最近更新 更多