gpt4 book ai didi

matlab - disp(fprintf()) 打印 fprintf 和字符数。为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:35 28 4
gpt4 key购买 nike

巧合的是,我发现 disp(fprintf()) 打印了 fprintf 的字符串加上它所具有的字符数。我知道,disp() 是多余的,但出于纯粹的好奇心,我想知道为什么它会打印字符数,因为这可能有一天真的有用。
例如

disp(fprintf('Hi %i all of you',2))

结果

Hi 2 all of you 15

最佳答案

问题中提到的特定行为的原因是调用 FILEprintf fprintf带有存储变量:

nbytes = fprintf(___) returns the number of bytes that fprintf writes, using any of the input arguments in the preceding syntaxes.

那么 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) formats the data in arrays A1,...,An according to formatSpec in column order, and returns the results to string str.

fprintf(fileID,formatSpec,A1,...,An) applies the formatSpec to all elements of arrays A1,...An in column order, and writes the data to a text file. fprintf uses the encoding scheme specified in the call to fopen.

fprintf(formatSpec,A1,...,An) formats data and displays the results on the screen.

因此,对于在屏幕上显示文本,disp(sprintf())fprintf 是相同的,但是如果您想将结果存储在字符串中,则必须使用 sprintf,如果你想将它写入文本文件,你必须使用 fprintf

关于matlab - disp(fprintf()) 打印 fprintf 和字符数。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33519743/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com