在MATLAB中交换字母的数字

时间:2009-04-14 18:47:12

标签: matlab

我有一个向量,例如V = [ 1, 2, 3, 4 ]。有没有办法将其更改为字母[ a,b,c,d ]

4 个答案:

答案 0 :(得分:11)

直接使用'a'代替ascii代码可能会稍微更具可读性

charString = char(V-1+'a');

然后用

获得大写字母
charString = char(V-1+'A');

答案 1 :(得分:4)

有两种简单的方法可以做到这一点。一种方法是简单的索引。

C = 'abcdefghijklmnopqrstuvwxyz';
V = [8 5 12 12 15 23 15 18 12 4];

C(V)
ans =
helloworld

当然,char也会这样做。 char答案更好,因为它不需要您存储要编入索引的字母列表。

char('a' + V - 1)
ans =
helloworld

这是最好的,因为当你向某个东西添加'a'时,它会动态地将'a'转换为它的ascii表示。 +'a'将产生97,'a'的ascii形式。

一件好事是它也适用于'A',所以如果你想要上限,只需添加'A'。

char('A' + V - 1)
ans =
HELLOWORLD

您可以从以下命令中找到有关在MATLAB中使用字符串的更多信息:

help strings
doc strings

答案 2 :(得分:1)

这样的东西
C = char(V+ones(size(V)).*(97-1))

应该有效(97是'a'的ASCII代码,你希望1映射到'a'看起来像。)

答案 3 :(得分:1)

使用CHAR函数将数字(即ASCII码)转换为字符:

charString = char(V+96);

编辑:要向后移动(将“a”映射到1,将“b”映射到2等),请使用DOUBLE函数将字符重新转换回ASCII代码号:

V = double(charString)-96;