4
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

我应该使用什么功能来完成上述操作?

4

5 回答 5

4

简单的解决方案是使用sscanf

x =' 1234     56789     7654'

sscanf(x, '%d')

ans =

    1234
   56789
    7654
于 2011-08-10T07:00:44.193 回答
2

有几种方法可以执行您想要的操作。其中之一是strtok。

x = '1234     56789     7654';
[fst rest] = strtok(x,' ');
于 2011-08-10T06:09:41.937 回答
0

STR2NUM非常适合这项任务:

>> x = '1234 56789 7654';
>> x = str2num(x)'

x =

        1234
       56789
        7654
于 2011-08-10T07:33:15.370 回答
0

只是为了添加另一个答案......

y = textscan(x, '%d     %d     %d')
于 2011-08-10T13:09:07.003 回答
0

下面创建一个字符串元胞数组,然后使用 sscanf 应用程序对其进行跟踪。

b = regexp(x,'\d+','match');
y = cellfun(@(a) (sscanf(a,'%d')),b); 
于 2011-08-10T19:07:29.763 回答