MATLAB 顯示輸出數據的三種方式

 

MATLAB 顯示輸出數據的三種方式

1.改變數據格式

當數據重複再命令行窗口時,整數以整形形式顯示,其餘值將以默認格式顯示。MATLAB的默認格式是精確到小數點後4位。若是一個數太大或過小,那麼將會以科學記數法的形式顯示。好比:程序員

>> x=100.11

x = 100.1100 >> y=1001.1 y = 1.0011e+03 >> z=0.00010011 z = 1.0011e-04
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

改變默認輸出格式要用到format命令,可根據下表改變數據的輸出格式數組

format 命令 結果 例子
format short 保留小數點後4位(默認格式) 12.3456
format long 保留小數點後14位 12.345678901234500
format short e 帶有5位有效數字科學記數法 1.2346e+100
format short g 總共有5個數字,能夠用科學記數法,也可不用 12.346
format long e 帶有15位有效數字科學記數法 1.234567890123457e+001
format long g 總共有15個數字,能夠用科學記數法,也可不用 12.3456789012346
format bank 美圓格式 12.35
format hex 用16進制標識 4028b0fcd32f6f3b
format rat 兩個小整數的比 2233/100
format compact 隱藏多於的換行符  
format loose 使用多餘的換行符  
format + 只顯示這個數的正負 +
 

其中美圓格式是指按美圓精確到美分的格式記數,隱藏/使用多餘的換行符這個我也試出來有什麼卵用。markdown

2.disp函數

另外一種顯示數據的方法是用disp函數。disp須要一個數組參數,它將值顯示在命令行窗口。若是這個數組是字符型,那麼包含在這個數組中的字符串將會打印在命令行窗口。 
此函數可聯合num2str(將一個數轉化爲字符串)和int2str(講一個整數轉化爲字符串)來產生新的信息,顯示在命令行窗口中。例如,下面的語句將「the value of pi=3.1416」顯示在命令行窗口中。第一句建立了一個字符型數組,第二句用於顯示這個數組。app

>> str=['the value of pi=' num2str(pi)]; >> disp(str); the value of pi=3.1416
  • 1
  • 2
  • 3

3.用fprintf函數格式化輸出數據

用fprintf函數顯示數據是一種十分簡便方法。fprintf函數顯示帶有相關文本的一個或多個值,容許程序員控制顯示數據的方式。它在命令行窗口打印一個數據的通常格式以下:函數

fprintf(format,data)
  • 1

其中format用於表示一個描述打印數據方式的字符串,data表明要打印的一個或多個標量或數組。format包括兩方面的內容,一方面是打印文本內容;另外一方面是打印內容中的數據格式。例如post

>> fprintf('the value of pi is%6.2f\n',pi) the value of pi is 3.14
  • 1
  • 2

打印的結果爲the value of pi is 3.14,後面帶有一個換行符。轉義序列%6.2f表明在本函數中的第一個數據項將佔有6個字符寬度,小數點後有2位小數。 
fprintf函數又一個重大的侷限性,只能顯示覆數的實部。當咱們的計算結果是複數時,這個侷限性將會產生錯誤。在這種狀況下,最好用disp顯示數據。ui

format 命令 結果
%d 把值做爲整數來處理
%e 用科學記數法來顯示數據
%f 用於格式化浮點數,並顯示這個數
%g 用科學記數格式,或浮點數格式,根據長度最短的顯示
%n 換行符

例如spa

>> i ans = 0.0000 + 1.0000i >> disp([i]) 0.0000 + 1.0000i >> fprintf('i is%8.4f\n',i) i is 0.0000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

注意fprintf忽略了虛部.net

4.對比總結

  • 改變數據的默認格式可讓數據以你想要的形式展示,包括精確到哪一位、多少進制顯示、只顯示正負等;
  • 使用disp函數來打印能夠打印全部的內容,包括負數,但要注意的是disp函數須要的是數組參數,而且只會打印數組內的字符串,因此若是是一個數字你須要使用int2str或num2str轉化成字符串,可是若是是一個矩陣,你能夠直接打印(至於爲何能夠直接打印數字格式的矩陣,我也不明白);
  • 使用fprintf函數能夠以任何的數據格式打印數據,並且能夠帶有一個或多個值,可是要使用正確的特殊字符,但值得注意的是fprintf函數只能複數的實部,因此在有複數參加或產生的計算中,可能產生錯誤的結果;

總的來講,使用fprintf最爲靈活方便,能夠輸出任何格式,並且能夠有多個數據項,但fprintf須要定義數據項的字符寬度和數據格式,因此上手感受有點繁瑣。命令行

相關文章
相關標籤/搜索