MATLAB是用来进行数值运算的,不像Python那样精通于字符串。但是用MATLAB还是可以完成不少字符串的操作。本人在使用matlab的过程中,头疼的不是数字,而是字符串,不太会处理。从网上找到一个教程,教如何在MATLAB中操作字符串,跟大家分享一下。
在MATLAB中输入字符串,肯定是要以 ‘ 作为开头,以 ’ 结尾。例如输入
StringVariable='hello China';
如果所需要输入的字符串本身包含了 ‘ , 则需输入两次,以免系统出现错误,例如
StringVariable='hello China, it''s wonderful';
在Matlab中,每一个字符串也是一个阵列(array),阵列就有大小,如果要查看之前定义的变量StringVariable这个字符串的大小,可以输入:
>>size(StringVariable)
ans=
1 27
也就是说这个字符串中共有27个字符。如果要替换这个字符串中的字符,比如第10个,可以输入:
>>StringVariable(1,10)='s'
StringVariable =
hello Chisa, it's wonderful
以上的字符串是一维的,也可以将它变为二维的,可以直接定义:
>>StringVariable(2,10)='s'
StringVariable =
hello Chisa, it's wonderful
s
可以看出,不同的维度可以储存不同的字符串,但是用这种方法储存字符串比较费事。不如用cell。例如如果想要储存“你好”在不同语言中如何表达,可以进行如下的操作:
Hellolanguage{1}='Hello';
Hellolanguage{2}='Bonjour';
Hellolanguage{3}='你好';
其中 {} 就表示了在cell中的元素。当再次输入
>>Hellolanguage{3}
ans =
你好
有时候,我们想让两个字符串变为一个字符串。例如合并Hello 和China:
>>['Hello',' ','China']
ans =
Hello China
要注意的是中间的空格也是一个字符,所以要用 ' ' 包起来。
将数字转换为字符串,以及将字符串转换为数字也是经常用的操作,相关的命令有 str2num, str2double, sprintf, num2str。例如
>>x=12;
>>[num2str(x),' monkeys']
ans =
12 monkeys
原文的作者推荐深入了解sprintf,是将数据转换为string,如果数字很多的话,可以用这个命令。