偶然にも、これdisp(fprintf())
は fprintf の文字列とそれに含まれる文字数を出力することを発見しました。が冗長であることは知っていますdisp()
が、純粋な好奇心から、なぜ文字数が出力されるのかを知りたいのです。これはいつか実際に役立つかもしれないからです。
例えば
disp(fprintf('Hi %i all of you',2))
結果は
こんにちは 2 皆さん 15
質問で言及されている特定の動作の理由はfprintf
、ストレージ変数を使用したFILEprintf の呼び出しです。
nbytes = fprintf(___)
fprintf
前述の構文の入力引数のいずれかを使用して、書き込むバイト数を返します。
したがって、最初にストレージ変数なしでdisp(fprintf(...))
テキストを出力しますが、文字列のバイト数であるのストレージ変数のみを表示するため、出力が表示されます。fprintf
disp
fprintf
さらに、文字列を表示したい場合は STRINGprintf: が必要ですsprintf
:
disp(sprintf('Hi %i all of you',2))
Hi 2 all of you
ドキュメントが私に示しているのは、テキストファイルへの書き込みsprintf
中に、グラフへのテキストの追加、連続したファイル名の設定などに使用できる文字列の書式設定にのみ使用されることです。fprintf
str = sprintf(formatSpec,A1,...,An)
列の順序に従って配列A1
内のデータをフォーマットし、結果を string に返します。An
formatSpec
str
fprintf(fileID,formatSpec,A1,...,An)
を配列,...formatSpec
のすべての要素に列順に適用し、データをテキスト ファイルに書き込みます。への呼び出しで指定されたエンコード方式を使用します。A1
An
fprintf
fopen
fprintf(formatSpec,A1,...,An)
データをフォーマットし、結果を画面に表示します。
したがって、画面にテキストを表示するにはdisp(sprintf())
またはfprintf
は等しいですが、結果を文字列に保存する場合は使用するsprintf
必要があり、テキスト ファイルに書き込む場合は を使用する必要がありますfprintf
。
のドキュメントでは、からの出力が印刷されたバイト数であるfprintf
ことがわかります。fprintf
ここでは、fprintf
が印刷Hi 2 all of you
しており、disp
が によって返された 15 を印刷していfprintf
ます。