x = 1234 56789 7654
x(1) 为 1,x(2) 为 2,依此类推...中间有 5 个空格.. size(x) = 1 23 一行 23 列我试过使用 num2str, strcat 但我不能俱乐部的数字。y = num2str(x), y = strcat(x)
我希望它是.. x(1) = 1234, x(2) = 56789, x(3) = 7654
我应该使用什么功能来完成上述操作?
x = 1234 56789 7654
x(1) 为 1,x(2) 为 2,依此类推...中间有 5 个空格.. size(x) = 1 23 一行 23 列我试过使用 num2str, strcat 但我不能俱乐部的数字。y = num2str(x), y = strcat(x)
我希望它是.. x(1) = 1234, x(2) = 56789, x(3) = 7654
我应该使用什么功能来完成上述操作?
简单的解决方案是使用sscanf
:
x =' 1234 56789 7654'
sscanf(x, '%d')
ans =
1234
56789
7654
有几种方法可以执行您想要的操作。其中之一是strtok。
x = '1234 56789 7654';
[fst rest] = strtok(x,' ');
STR2NUM非常适合这项任务:
>> x = '1234 56789 7654'; >> x = str2num(x)' x = 1234 56789 7654
只是为了添加另一个答案......
y = textscan(x, '%d %d %d')
下面创建一个字符串元胞数组,然后使用 sscanf 应用程序对其进行跟踪。
b = regexp(x,'\d+','match');
y = cellfun(@(a) (sscanf(a,'%d')),b);