matlab輸出資料

2021-09-17 06:55:19 字數 2640 閱讀 5176

1.改變資料格式

當資料重複再命令列視窗時,整數以整形形式顯示,其他值將以預設格式顯示。matlab的預設格式是精確到小數點後4位。如果乙個數太大或太小,那麼將會以科學記數法的形式顯示。比如:

x=100.11

x =100.1100

y=1001.1

y =1.0011e+03

z=0.00010011

z =1.0011e-04

改變預設輸出格式要用到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

用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

列印的結果為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

注意fprintf忽略了虛部

4.對比總結

改變資料的預設格式可以讓資料以你想要的形式展現,包括精確到哪一位、多少進製顯示、只顯示正負等;

使用disp函式來列印可以列印所有的內容,包括負數,但要注意的是disp函式需要的是陣列引數,並且只會列印陣列內的字串,所以如果是乙個數字你需要使用int2str或num2str轉化成字串,但是如果是乙個矩陣,你可以直接列印(至於為什麼可以直接列印數字格式的矩陣,我也不明白);

使用fprintf函式可以以任何的資料格式列印資料,而且可以帶有乙個或多個值,但是要使用正確的特殊字元,但值得注意的是fprintf函式只能複數的實部,所以在有複數參加或產生的計算中,可能產生錯誤的結果;

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

原文:

matlab的輸出流控制

matlab之print,fprint,fscanf,disp函式 print print函式可以把函式圖形儲存成 plain view plain copy minbnd 4 pi maxbnd 4 pi t minbnd 0.1 pi maxbnd plot t,sin t g linewidt...

matlab離線處理c 輸出到txt的資料

用c 語言採集到大量資料,如果要進行視覺化,進行分析或者展示,那麼比較方便的是用matlab來處理。首先想到的是以txt為儲存資料載體,離線處理。即c 程式執行過程中把採集到的資料儲存到txt中,然後在matlab中讀取進行資料分析和繪圖。至於實時處理,將來有了實現方案再新寫一篇進行介紹。需要包括標...

MATLAB的輸入與輸出函式

輸出2.fprintf 由於 matlab不使用 stdin 和 stdout,而是使用command window進行互動。因此不需要使用 scanf 和 printf 等 c c 函式來提示使用者進行輸入。但在某些情況下需要提示使用者進行輸入並列印相關結果時,可使用如下函式。matlab中使用i...