このエラーの解決策を見つけました。
渡す最初のパラメーターはprintf
、有効なフォーマット文字列でなければなりません。ファイルハンドルを渡しています。ファイルハンドルを渡したい場合は、fprintf
代わりに使用する必要があります。最初のパラメーターをファイルとして指定すると、printf で上記のエラーが発生します。
代わりにこれを行う必要があります:
A = cell(10,1);
A{5,1} = "foobar";
outputFile = fopen("mytext.txt", "w");
fprintf(outputFile, "%s", A{5,1});
または、画面に出力したい場合は、outputFile パラメーターを削除します。
A = cell(10,1);
A{5,1} = "foobar";
outputFile = fopen("mytext.txt", "w");
printf("%s", A{5,1});
% Here printf successfully casts the cell as a string. no error.
printf に不正なパラメータを渡しており、Octave は意味をなさないことを理解しようとしています。この Web ページを参照して、octave の printf に渡せるものと渡せないものを確認してください。
http://www.gnu.org/software/octave/doc/interpreter/Formatted-Output.html#doc-printf