巧合的是,我发现disp(fprintf())
打印fprintf的字符串加上它所包含的字符数。我知道disp()
是多余的,但只是出于纯粹的好奇,我想知道为什么它会打印字符数,因为这可能有一天会有所帮助
例如
disp(fprintf('Hi %i all of you',2))
中的结果
嗨2你们15
问题中提到的特定行为的原因是使用存储变量调用FILEprintf fprintf
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
则写入文本文件。
CCD_ 13对阵列CCD_,。。。,
An
根据列顺序的formatSpec
,并将结果返回到字符串str
。
fprintf(fileID,formatSpec,A1,...,An)
将formatSpec
应用于阵列A1
、…的所有元素,。。。An
,并将数据写入文本文件。CCD_ 22使用在对CCD_ 23的调用中指定的编码方案。
fprintf(formatSpec,A1,...,An)
格式化数据并在屏幕上显示结果。
因此,对于在屏幕上显示文本,disp(sprintf())
或fprintf
是相等的,但如果要将结果存储在字符串中,则必须使用sprintf
,如果要将其写入文本文件,则必须采用fprintf
。
在fprintf
上的文档中,您可以看到fprintf
的输出是打印的字节数。因此,这里fprintf
正在打印Hi 2 all of you
,而disp
正在打印由fprintf
返回的15。