7

こんにちは、文字列のセル配列を作成しようとしています:

data = ['1';'2';'3';'4';'5';'6';'7';'8';'9';'10';'11';'12';'13';'14';'15';'16';'17';'18';'19';'20';];

ここで、25 要素のセル配列を期待しています。しかし、私は得る:

length(data)

= 33

したがって、明らかに数字の 12、13 などは 2 ビットとしてカウントされます。

私の質問は、セル配列の長さが20であることを確認するにはどうすればよいですか? また、セル配列を入れる関数は、int を使用しているにもかかわらず、文字列のセル配列でなければなりません!

4

2 に答える 2

11

{}の代わりにを使用してセルを作成したり、 を使用して 1 から までの数値を表す文字列の任意の長さのセルを作成し[]たりできます。strsplitN

data = strsplit(num2str(1:N));

更新:これを行う最も速い方法は、sprintfc各要素を独自のセルに出力するドキュメント化されていない関数 (末尾の「c」に注意してください) を使用することです。

>> A = sprintfc('%g',1:20)
A = 
  Columns 1 through 11
    '1'    '2'    '3'    '4'    '5'    '6'    '7'    '8'    '9'    '10'    '11'
  Columns 12 through 20
    '12'    '13'    '14'    '15'    '16'    '17'    '18'    '19'    '20'
>> which sprintfc
built-in (undocumented)
于 2013-10-03T19:57:30.027 に答える