4
x = 1234     56789     7654

x(1)は1、x(2)は2など...間に5つのスペースがあります。size(x)= 1 23 num2str、strcatを使用して試した23列の1行ですが、できません。数字をクラブします。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

やりたいことを実行するには、いくつかの方法があります。それらの1つはstrtokです。

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

次の例では、文字列のセル配列を作成し、sscanf を適用してフォローアップします。

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

STR2NUMは、次のタスクに適しています。

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

×=

        1234
       56789
        7654
于 2011-08-10T07:33:15.370 に答える
0

ミックスに別の答えを追加するだけです...

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