print、fprintf、fscanf、disp、 0x0a和0x0d(matlab)

print

print是打印命令,但是可以将当前坐标系中的内容打印到文件,或打印到剪切板,saveas只是print函数的简化版。

print(fh,'-dmeta');   %将当前坐标系中的内容复制到剪切板

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当前的工作目录下

在当前工作目录下会出现一个sin.png文件,如下:
print测试

print的用法:

print(图形句柄,存储格式,文件名);

图形句柄,如果图形窗口标题栏为’figure2’,则句柄就是2。用gcf可以获取当前窗口句柄。
指定存储格式,常用的有:

  • PNG格式:’-dpng’(推荐这一种,与bmp格式一样清晰,文件也不大)
  • JPEG格式:’-djpeg’(文件小,较清晰)
  • TIFF格式:’-dtiff’
  • BMP格式:’-dbitmap’(清晰,文件极大)
  • GIF格式:’-dgif’(文件小但不清晰)
    例如:
I = imread('result.png');
imshow(I);
print(gcf,'-dbmp','result.bmp')

批量打印:

for i=1:length(fnames)
    print('-dpsc','-r200',fnames(i))
end

更多内容看help print,注意一点,print为将图形数据保存为图像文件!


fprintf

fprintf函数可以将数据按指定格式写入到文本文件中。

data = [5,1,2;3,7,4];
[row,col]=size(data);
for i = 1:row
    for j = 1:col
        fprintf('data(%d,%d)=%d\n',i,j,data(i,j)); %直接输出到屏幕,类似于C语言的输出格式
    end
end

结果如下:
fprintf test

语法说明:
fprintf(fid,format,data)中的fid表示由fopen函数打开的文件句柄,如果fid省略,则直接输出在屏幕上,format是字符串形式的输出格式,data是要输出的数据。
其中,format的取值包括:

  • %c 单个字符
  • %d 有符号十进制数(%i也可以)
  • %u 无符号十进制数
  • %f 浮点数(%8.4f表示对浮点数取8位宽度,同时4位小数)
  • %o 无符号八进制数
  • %s 字符串
  • %x 小写a-f的十六进制数
  • %X 大写A-F的十六进制数

将数据输出到文本文件:

data = [5,1,2;3,7,4];
[row,col]=size(data);

%加t表示按Windows格式输出换行,即0x0a 0x0d (\r\n)
%没有t表示按Linux格式输出换行,即0x0a(\r)
fid = fopen('test.txt','wt');  %打开文件
for i = 1:row
    for j = 1:col
        fprintf(fid,'%d',data(i,j));
    end
    fprintf(fid,'\n');
end
fprintf(fid,'This is a string!\n');
fprintf(fid,'%X',hex2dec('ABCD'));
fclose(fid);

这里写图片描述

使用fscanf从文本文件中读取数据:

fid = fopen('test.txt','rt');

%将数据读入data中,其中data是2*3的矩阵
data = fscanf(fid,'%d',[2,3]);
s = fscanf(fid,'%s');
d = fscanf(fid,'%X');
fclose(fid);

disp(data);
disp(s);
disp(d);

这里写图片描述

0x0a和0x0d的问题

这里写图片描述

0x0a, 10查ASCII码表对应\n,换行键,光标移动到下一行
0x0d, 13查ASCII码表对应\r,回车键,光标移动到行首

Windows环境下,在txt文件中敲下回车键,会获得2个字符,0x0d和0x0a;
Linux环境下,在txt文件中敲下回车键,每次只获得1个字符,0x0a。


disp

disp函数直接将内容输出在Matlab命令窗口中。

%单字符串输出: 
disp('Hello World!');
%不同类型数据输出: 
num1 = 1; 
num2 = 2;  
disp([ num2str(num1), ' + ', num2str(num2), ' = ', num2str(num1+num2)]); 

输出:
Hello World!
1+2=3

###参考链接
1、Matlab中print、fprintf、fscanf、disp函数的用法
http://wenku.baidu.com/link?url=D1QmdNlt1R4Hnz-F0iykLdf46WSmryNzDrPAuOeZo7Fyg99kCUj824joYjmQLhxhXzEIoHVito602hG8XmudIH9OPVJrgb7XVMp5fy_sfUW
2、0x0d和0x0a 学习
http://blog.csdn.net/yirexiao/article/details/5135976
3、ASCII码表,百度百科
http://baike.baidu.com/link?url=mHKWeEcbruRP__iQCilxhdN5P9fslzPLOXYVkfplwAefIyBnWh0QX4hK3pivAt–uGdwZZKyiWrplhsnXMo7sK

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页