2011-10-30 10 views
1

Matlabの新しい行をそれぞれ1つの文字列に区切る文字列のセル配列をマージしようとしています。 次のメソッドは文字列をマージしますが、最終的な文字列は、nの代わりに新しい行の\含まれています文字列の nをMatlabの新しい行に置き換えます。

function str = toString(self) 
    % some not important logic that creates cell array called strings 
    % ... 
    str = ''; 
    for i = 1 : 9    
     str = strcat(str, strings(i), '\n'); 
    end 
end 

それを返すを:私は、メソッドの終了前にstr = sprintf(str);を追加すると' 111\n 111\n 111\n333666444555\n333666444555\n333666444555\n 222\n 222\n 222\n'

、それは無効な形式エラーを返します。 。しかし、Matlabのコマンドウィンドウsprintf(' 111\n 111\n 111\n333666444555\n333666444555\n333666444555\n 222\n 222\n 222\n');に書き込むと、フォーマットされた文字列がエラーなしで返されます。

誰かが何が問題なのかを知っていますか?なぜそれはコマンドウィンドウでは動作しますが、.mファイルにはありませんか?

答えて

2

はsprintfは、要素またはあなたのセル配列をループします:

sprintf('%s\n', strings{:}) 

あなたのループに問題は「\ nの」ですが2要素の文字列ですが、何が欲しいのはsprintf(「\ nの」です)

+0

ありがとうございました。 –

関連する問題