可能重复:
在matlab中将字符串转换为数字数组
在Matlab中有一种简单的方法来转换像这样的字符串
'123456789'
Run Code Online (Sandbox Code Playgroud)
变成这样的矢量?
[1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
如果您拥有的是从0到9的连续字符:
v = double(s)-'0';
Run Code Online (Sandbox Code Playgroud)
double(s)将字符串转换为数组,其中每个元素都是相应字符的ASCII代码.为了获得数字值,我们减去'0'(实际上是ASCII中的48)并且由于数字在ASCII代码中具有顺序表示('1'= 49,'2'= 50等),我们最终会得到预期的结果.
一种方法是regexp
用于此.但当然它只适用于单位数字.
>> str = '123456789';
>> num = regexp(str,'\d')
num =
1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)