我有一个向量,例如V = [ 1, 2, 3, 4 ]
。有没有办法将其更改为字母[ a,b,c,d ]
?
答案 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)