Matlab之print,fprint,fscanf,disp函數(轉)

來源:互聯網
上載者:User

標籤:

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 isa 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

 

Matlab之print,fprint,fscanf,disp函數(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.