【Matlab系列】MATLAB中显示输出数据的四种方式

本文介绍了MATLAB中显示输出数据的四种方式,包括disp函数、fprintf函数、print函数及其使用场景。disp适合显示数组和字符串,fprintf提供更灵活的数据格式控制,print则用于保存图形为图片。通过实例展示了如何改变数据格式和利用这些函数进行数据输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DATE: 2019-11-13

1、参考

MATLAB 显示输出数据的三种方式
Matlab之print,fprint,fscanf,disp函数

2、改变数据格式

当数据重复再命令行窗口时,整数以整形形式显示,其他值将以默认格式显示。MATLAB的默认格式是精确到小数点后4位。如果一个数太大或太小,那么将会以科学记数法的形式显示。比如:

>> x=100.11

x =

  100.1100

>> y=1001.1

y =

   1.0011e+03

>> z=0.00010011

z =

   1.0011e-04

改变默认输出格式要用到format命令,可根据下表改变数据的输出格式:

format 命令结果例子
format short保留小数点后4位(默认格式)12.3456
format long保留小数点后14位12.345678901234500
format short e带有5位有效数字科学记数法1.2346e+100
format short g总共有5个数字,可以用科学记数法,也可不用12.346
format long e带有15位有效数字科学记数法1.234567890123457e+001
format long g总共有15个数字,可以用科学记数法,也可不用12.3456789012346
format bank美元格式12.35
format hex用16进制标识4028b0fcd32f6f3b
format rat两个小整数的比2233/100
format compact隐藏多于的换行符
format loose使用多余的换行符
format +只显示这个数的正负+
3、disp函数

另一种显示数据的方法是用disp函数。disp需要一个数组参数,它将值显示在命令行窗口。如果这个数组是字符型,那么包含在这个数组中的字符串将会打印在命令行窗口。
此函数可联合num2str(将一个数转化为字符串)和int2str(讲一个整数转化为字符串)来产生新的信息,显示在命令行窗口中。例如,下面的语句将“the value of pi=3.1416”显示在命令行窗口中。第一句创建了一个字符型数组,第二句用于显示这个数组。

>> str=['the value of pi=' num2str(pi)];
>> disp(str);
the value of pi=3.1416
4、用fprintf函数格式化输出数据

用fprintf函数显示数据是一种十分简便方法。fprintf函数显示带有相关文本的一个或多个值,允许程序员控制显示数据的方式。它在命令行窗口打印一个数据的一般格式如下:

fprintf(format,data)

其中format用于表示一个描述打印数据方式的字符串,data代表要打印的一个或多个标量或数组。format包括两方面的内容,一方面是打印文本内容;另一方面是打印内容中的数据格式。例如:

>> fprintf('the value of pi is%6.2f\n',pi)
the value of pi is  3.14

注意: fprintf函数又一个重大的局限性,只能显示复数的实部。当我们的计算结果是复数时,这个局限性将会产生错误。在这种情况下,最好用disp显示数据。

举个栗子:

>> i
ans =
   0.0000 + 1.0000i
>> disp([i])
   0.0000 + 1.0000i
>> fprintf('i is%8.4f\n',i)
i is  0.0000
format 命令结果
%d把值作为整数来处理
%e用科学记数法来显示数据
%f用于格式化浮点数,并显示这个数
%g用科学记数格式,或浮点数格式,根据长度最短的显示
%n换行符
5、print

print函数可以把函数图形保存成图片。

minbnd = -4*pi;  
maxbnd = 4*pi;  
t = minbnd:0.1*pi:maxbnd;  
plot(t, sin(t), 'g', 'Linewidth', 2);  
line([minbnd, maxbnd], [0, 0]);    %绘制x轴  
axis([-10, 10, -2, 2])             %定义显示的坐标区间:x在(-10,10)之间,y在(-2,2)之间  
grid on;  
title('sin(x)');  
xlabel('x');  
ylabel('sin(x)');  
print('-dpng','sin.png');          %保存为png图片,在Matlab当前的工作目录下 
6、disp和fprintf两种输出方式的对比
  • 改变数据的默认格式可以让数据以你想要的形式展现,包括精确到哪一位、多少进制显示、只显示正负等;
  • 使用disp函数来可以打印所有的内容,包括负数,但要注意的是disp函数需要的是数组参数,并且只会打印数组内的字符串,所以如果是一个数字你需要使用int2str或num2str转化成字符串,但是如果是一个矩阵,你可以直接打印(至于为什么可以直接打印数字格式的矩阵,我也不明白);
  • 使用fprintf函数可以以任何的数据格式打印数据,而且可以带有一个或多个值,但是要使用正确的特殊字符,但值得注意的是fprintf函数只能复数的实部,所以在有复数参加或产生的计算中,可能产生错误的结果;

总的来说,使用fprintf最为灵活方便,可以输出任何格式,而且可以有多个数据项,但fprintf需要定义数据项的字符宽度和数据格式,所以上手感觉有点繁琐。


THE END!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值