1

Matlab で、改行ごとに区切られた文字列のセル配列を 1 つの文字列にマージしようとしています。次のメソッドは文字列をマージしますが、最終的な文字列には改行の代わりに \n が含まれます。

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

戻り値:' 111\n 111\n 111\n333666444555\n333666444555\n333666444555\n 222\n 222\n 222\n'

str = sprintf(str);メソッドの終了前に追加すると、無効な形式のエラーが返されます。ただし、Matlab コマンド ウィンドウに書き込むと、sprintf(' 111\n 111\n 111\n333666444555\n333666444555\n333666444555\n 222\n 222\n 222\n');フォーマットされた文字列がエラーなしで返されます。

誰が問題になる可能性があるか知っていますか?コマンド ウィンドウでは機能するのに、.m ファイルでは機能しないのはなぜですか?

4

1 に答える 1

2

sprintf は、要素またはセル配列をループします。

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

ループの問題は '\n' が 2 要素の char 配列であることですが、必要なのは sprintf('\n') です

于 2011-10-30T14:28:58.933 に答える