1.文本文件
1)读入
buff = load('filename');
此命令读入的.txt文件按数据在.txt文件内的存储方式被写入到buff变量中。
以空格来分割行元素,回车来分割列元素。
要求.txt文件中必须要是十进制数据,并且行列要对其,不可以有缺省.
- txtname = 'D:\exam.txt'; %文件路径
- txtdata = load(txtname);
如上图所示的代码,则exam.txt文件内的数据按照原格式被读入到名为txtdata的变量当中。
matlab完全继承了C的文件读写方式,因此除了上述load函数之外,也可以直接采用fopen和fscanf相配合的方式来读取.txt文件。但是相比之下load函数则方便很多。
此外.mat文件的读入也可用load函数来实现。
2)写出
在文件保存为.txt的时候,就比较倾向于使用C风格的fopen和fprintf函数了,因为可以灵活地控制输出格式。
- txtname = 'D:\out.txt';
- pfile = fopen(txtname,'w');
- for i = 1:row
- for j = 1:col
- data = txt2(i,j);
- fprintf(pfile,'%d ',data);
- end
- fprintf(pfile, '\r\n');
- end
- fclose(pfile);
这就可以按照要求的行列格式输出到.txt文件中,其中行以空格分割,列以回车分割。
2.图像文件
图像文件的读写就比较简单了,利用imread和imwrite函数就可以
img = imread(filename, format);
filename是文件名(含路径和图像格式后缀),format是打开方式,默认缺省时表示按原图像打开。上述指令表示吧图像数据读入到img中。
imwrite(img, filename);
img是存放图像数据的变量名,filename是要保存文件的名称(含路径和图像格式后缀)。
- imgname = 'D:\img1.png'; %图像路径
- image = imread(imgname);
- figure, imshow(image);
- imwrite(image, 'D:\out.png');