disp 和 fprintf 之间的区别

Difference between disp and fprintf

在 Matlab 中,在我看来 dispfprintf 命令都非常相似,因为它们都显示您告诉它的内容。这两个命令有什么区别?

对于disp,它显示变量的值。

例如

>> a = 1; disp(a)
     1

另一个例子。

>> disp('example')
example

注意,'example'可以看作一个变量

参考:https://www.mathworks.com/help/matlab/ref/disp.html


对于fprintf,如果你说的是显示到屏幕,格式是

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

disp的区别是它不显示变量的值,除非你指定格式字符串

例如,如果您倾向于显示变量的值,则会出现错误

>> a = 1; fprintf(a)
Error using fprintf
No format string.

您需要指定格式字符串。例如,格式字符串为 'The value of a is %d\n'

a = 1; fprintf('The value of a is %d\n',a)
The value of a is 1

如果你说的是将数据写入文本文件,格式是

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.

例如

fileID = fopen('exp.txt','w');
fprintf(fileID,'The number is %d\n',1);
fclose(fileID);

使用type命令查看文件内容。

>> type exp.txt

The number is 1

fprintf也可以returnfprintf写入的字节数。

参考:https://www.mathworks.com/help/matlab/ref/fprintf.html