Matlab怎麼修改顯示數值格式/精度/小數位數
原文連結:Matlab怎麼修改顯示數值格式/精度/小數位數
問題描述:
如圖,matlab命令視窗中顯示的數值預設只是4位小數,最後一位採用四捨五入。
在計算中精度要求可能會更高,如果要修改顯示的小數位數,需要操作一下,matlab2013以前的版本的版本請看原文連結(最上方)
format short :控制輸出結果為5位精度,即小數點後4位。matlab提供了format命令, 用於控制輸出結果的顯示精度,而不會影響變數的儲存和運算精度。其中常用的format命令有: format short:顯示5個字長的數字(小數點後4位) format long:雙精度數顯示15位精度,單精度數顯示7位精度 format rat:分數形式表示 format short e :將數值都用科學計數法表示,保留五位有效數字 matlab裡面輸入以上命令即可,像這樣: >>format long 若想改回來就是: >>format short
matlab程式碼在除錯的過程中,滑鼠懸浮到變數上即可看到變數的值。
類似矩陣和陣列,可以像C++那樣打印出來。
使用disp 函式來 列印變數的值
fprintf('最終的輸出結果,到此程式結束\n')
disp(msgstnr)
Matlab輸出變數到文字:
原文連結:matlab 檔案輸出到text檔案總結
% 新增程式碼輸出 dn 到檔案檢視 % dn 是一個 10000 * 1 的陣列,或者說矩陣 % 執行 format long 之後 , dn 的實際可見精度位為 16位 %disp(dn) fid = fopen('H:\noise\weveRead\dn.txt','wt'); fprintf(fid,'%g\n',dn); fclose(fid);
【matlab】round函式的用法
round函式用於舍入到最接近的整數。語法形式只有1種:Y = round(X),這裡的X可以是數,向量,矩陣,輸出對應。 舉例: 1、round(2.1) = 2; round(2.5) = 3; round(2.8) = 3 2、round(-2.1) = -2; round(-2.5) = -3; round(-2.8) = -3 3、 >> A = [2.3 4.7 -2.3 -4.7] A = 2.3000 4.7000 -2.3000 -4.7000 >> round(A) ans = 2 5 -2 -5 4、>> A = [2.1 4.7 8.9; 3.4 5.6 7.1; -9.8 -3.4 -2.5] A = 2.1000 4.7000 8.9000 3.4000 5.6000 7.1000 -9.8000 -3.4000 -2.5000 >> round(A) ans = 2 5 9 3 6 7 -10 -3 -3
下面寫一點最近實習心得:
leader給的任務是把 一個小工具 matlab 程式碼移植到 C++ ( 因為 matlab 太慢了,沒辦法配合其他步驟 部署到伺服器中執行)
接到任務第一反應:我經歷了什麼,matlab 根本沒寫過程式碼呀,C++已經是3年前上課時候學習的東西了,請原諒無知的我被矇蔽了雙眼,根本不知道這個任務該如何完成,更不知道這個任務對我成長而言有什麼意義。
經歷了幾天內心的抗拒和針對目前工作狀況等一系列因素的權衡,覺得leader把這個任務交給我自然會有leader的考慮,還是要認真做下去的。
於是開始著手除錯程式,剛開始正向看程式碼,發現看不懂的地方太多了,後來醒悟。
根據最終輸出結果自下而上的尋找與結果相關的變數和方法,以此類推,漸漸的對程式碼的計算方法才有了整體的認識,知道了這些程式碼是這樣的一個過程,相當於從結果出發梳理了matlab程式碼關鍵的變數和方法,裡面有很多對於我的需求無效的程式碼就給排除掉了,因為這些正向看的時候很難看出來和我最終結果有沒有關係。
所以針對這種程式碼量較大,一頭霧水的程式碼,很多時候從最終結果出發,反向路由,更容易理清解決思路,然後再針對相關變數和方法 一 一 理解並複寫C++的方法進行移植。