matlab的基本用法---常用的输入输出函数

matlab中print,fprintf,fscanf,disp,input函数的用法

1. print
print函数用于将作出的函数图像保存成指定格式的图片,紧跟在函数图像后面,参数用来指定保存的格式和保存后图片的名称,一般情况下保存的位置为当前matlab的路径,也可以指定保存的位置。
例子:

x=-10;
y=10;
t=x:0.001:y;
f=sin(t);
plot(f);
grid on;
title('sin(x)');
xlabel('x');
ylabel('sin(x)');
print('-dpng','sin.png');  %保存到当前路径下
print('-dpng','C:\Users\AA\Desktop\matlabImg\sin.png'); %保存到指定路径下

其他图片格式还有如下:

print('-dbmp','C:\Users\AA\Desktop\matlabImg\sin.bmp'); 
print('-djpeg','C:\Users\AA\Desktop\matlabImg\sin.jpeg'); 
print('-dpng','C:\Users\AA\Desktop\matlabImg\sin.png'); 
print('-dpcx','C:\Users\AA\Desktop\matlabImg\sin.pcx'); 
print('-dpdf','C:\Users\AA\Desktop\matlabImg\sin.pdf'); 
print('-dtiff','C:\Users\AA\Desktop\matlabImg\sin.tiff'); 

2. fprintf
fprintf函数可以将数据按指定格式写入到文本文件中。fprintf(fid, format, data)中的fid表示由fopen函数打开的文件句柄,如果fid省略,则直接输出在屏幕上,format指定输出格式,data是要输出的数据。
例子1:

data=[5 1 1;3 7 4];
[row,col]=size(data); %求矩阵的行数和列数
for i=1:1:row
    for j=1:1:col
        fprintf('data(%d,%d)=%d\n',i,j,data(i,j)); %直接输出在屏幕上
    end
end

例子2:

%输出到文件
data=[5 1 1;3 7 4];
[row,col]=size(data); %求矩阵的行数和列数
%打开文件,如果有直接打开,如果没有就会新创建一个
%如果没有指定路径,那么为当前matlab路径
fid=fopen('test.txt','wt');   %可写
for i=1:1:row
    for j=1:1:col
        fprintf(fid,'%d',data(i,j));
    end
    fprintf(fid,'\n');
end
fprintf(fid,'Hello world!\n');
fprintf(fid,'%x',hex2dec('ABCD'));
fclose(fid); %别忘记关闭打开的文件

3. fscanf
fscanf可以从文件中读取数据, [a,count]=fscanf(fid, format, size), 即从fid 文件中按照格式format读出数据并按size的格式放入内存变量a中。

变量名 含义
a 内存变量,用于存储读出的数据,其格式由size决定,它是一个矩阵
count 返回值是0,则读取失败,如果n>0,则读取成功,n是读出数据个数。
fid 要读取数据的文件
format 规定要读取的数据的格式
size a的数据的维度

注意:1.fscanf读取文件中的数据时,从第一个数据开始依次往下读(按照行的顺序),如果fscanf不能将格式(format)与数据匹配,就会停止读取(自动忽略空格),把读取到的数据按照列的顺序存放到内存变量(a)中,直到将a放满停止,如果a不满,则补0或空格。
例子1:text.txt文件内容如下
1 2 3 4
5 6 7 8
9 2 4 5

fid=fopen('C:\Users\AA\Documents\MATLAB\test.txt','rt');
[a,count]=fscanf(fid,'%d',5);
fclose(fid);
disp(a);
disp(count);

输出显示:
1
2
3
4
5
5
这个例子说明size可以是一个数字,表示读取多少个数据,并按一列存储下来。如果是inf
例子2:text.txt文件内容如下
1 2 3 4
5 6 7 8
9 2 4 5

fid=fopen('C:\Users\AA\Documents\MATLAB\test.txt','rt');
[a,count]=fscanf(fid,'%d',[2,3]);
fclose(fid);
disp(a);
disp(count);

输出显示:
1 3 5
2 4 6
6
这个例子说明将a填满之后,就不再读取。
例子3:text.txt文件内容如下
1 2 3 4
5 6 7 8
9 2 4 5

fid=fopen('C:\Users\AA\Documents\MATLAB\test.txt','rt');
[a,count]=fscanf(fid,'%d',[4,4]);
fclose(fid);
disp(a);
disp(count);

输出显示:
1 5 9 0
2 6 2 0
3 7 4 0
4 8 5 0
12
这个例子说明所有数据读完之后,如果没有填满a,则补0.
例子4:text.txt文件内容如下
1 2 3 4
5 e 6 8
9 2 4 5

fid=fopen('C:\Users\AA\Documents\MATLAB\test.txt','rt');
[a,count]=fscanf(fid,'%d',[3,3]);
fclose(fid);
disp(a);
disp(count);

输出显示:
1 4 0
2 5 0
3 0 0
5
这个例子说明读到字符e时,发现与格式’%d’不匹配,因此停止处理。
4. disp
disp函数可以输出任何内容,只接收一个参数

num1=20;
num2=30;
disp([num1,'+',num2,'=',num1+num2]);

5. input
看下面的代码就明白了。

扫描二维码关注公众号,回复: 4023291 查看本文章
%input函数用于接收user输入的数据
%此时用户输入的内容会被matlab当成一个表达式
%然后通过计算表达式将值赋值给n,如果输入的不是合法的表达式,则会报错。
%并继续等待输入
n=input('请输入你想输入的内容:');
disp(n);
%后面带了一个参数,表示无论user输入什内容,matlab都会当成是字符串,然后赋值给str
str=input('请输入你想输入的内容:','s');
disp(str);

猜你喜欢

转载自blog.csdn.net/I_am_a_coder_coder/article/details/83544322
今日推荐