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當前的工作目錄下
如下:
打開Matlab當前的工作目錄下可以看到有sin.png圖片了
print('-dpng', 'sin.png')表示保存爲png圖片,文件名爲sin.png,其中第一個參數可以是:
-dbmp:保存爲bmp格式
-djpeg:保存爲jpeg格式
-dpng:保存爲png格式
-dpcx:保存爲pcx格式
-dpdf:保存爲pdf格式
-dtiff:保存爲tiff格式
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(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); %求出矩陣data的行數和列數
- %加t表示按Windows格式輸出換行,即0xOD 0x0A,沒有t表示按Linux格式輸出換行,即0x0A
- fid=fopen('test.txt', 'wt'); %打開文件
- for i=1:row
- for j=1:col
- fprintf(fid, '%d ', data(i, j)); %類似於C語言的輸出格式
- end
- fprintf(fid, '\n');
- end
- fprintf(fid, 'This is a string\n');
- fprintf(fid, '%X', hex2dec('ABCD'));
- fclose(fid); %最後不要忘記關閉文件!
就會在Matlab當前的工作目錄下生成test.txt文件
我們可以使用fscanf函數
fscanf:
- %加t的理由和上面一樣
- fid=fopen('d:\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);
從輸出的結果看,我們發現fscanf讀取數據時會忽略空格,直到回車爲止!
disp:
disp函數直接將內容輸出在Matlab命令窗口中:
- %單字符串輸出:
- disp('Hello World!');
- %不同類型數據輸出:
- num1 = 1;
- num2 = 2;
- disp([ num2str(num1), ' + ', num2str(num2), ' = ', num2str(num1+num2)]);
輸出:
Hello World!
1 + 2 = 3