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 + 只顯示這個數的正負 +
 

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

2.disp函數

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

>> 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包括兩方面的內容,一方面是打印文本內容;另一方面是打印內容中的數據格式。例如

>> 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顯示數據。

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

例如

>> 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忽略了虛部

4.對比總結

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

總的來說,使用fprintf最為靈活方便,可以輸出任何格式,而且可以有多個數據項,但fprintf需要定義數據項的字符寬度和數據格式,所以上手感覺有點繁瑣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM