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:
%输出到⽂件text函数什么意思
data=[5 1 1;3 7 4];
[row,col]=size(data); %求矩阵的⾏数和列数
%打开⽂件,如果有直接打开,如果没有就会新创建⼀个
%如果没有指定路径,那么为当前matlab路径
fid=fopen('','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:⽂件内容如下
1 2 3 4
5 6 7 8
9 2 4 5
fid=fopen('C:\Users\AA\Documents\','rt');
[a,count]=fscanf(fid,'%d',5);
fclose(fid);
disp(a);
disp(count);
输出显⽰:
1
2
3
4
5
5
这个例⼦说明size可以是⼀个数字,表⽰读取多少个数据,并按⼀列存储下来。如果是inf
例⼦2:⽂件内容如下
1 2 3 4
5 6 7 8
9 2 4 5
fid=fopen('C:\Users\AA\Documents\','rt');
[a,count]=fscanf(fid,'%d',[2,3]);
fclose(fid);
disp(a);
disp(count);
输出显⽰:
1 3 5
2 4 6
6
这个例⼦说明将a填满之后,就不再读取。
例⼦3:⽂件内容如下
1 2 3 4
5 6 7 8
9 2 4 5
fid=fopen('C:\Users\AA\Documents\','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:⽂件内容如下
1 2 3 4
5 e
6 8
9 2 4 5
fid=fopen('C:\Users\AA\Documents\','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
看下⾯的代码就明⽩了。
%input函数⽤于接收user输⼊的数据
%此时⽤户输⼊的内容会被matlab当成⼀个表达式
%然后通过计算表达式将值赋值给n,如果输⼊的不是合法的表达式,则会报错。
%并继续等待输⼊
n=input('请输⼊你想输⼊的内容:');
disp(n);
%后⾯带了⼀个参数,表⽰⽆论user输⼊什内容,matlab都会当成是字符串,然后赋值给str str=input('请输⼊你想输⼊的内容:','s');
disp(str);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论