1、問題描述
之前一直使用的都是2015b版本,用了三年也沒遇到過這個問題。但是最近的某一天,這個著名的問題就出現了。當時打算下載2020a版,就沒有太過關注,搜索了一下解決辦法,基本都是針對編輯器的默認字體修改,試過了但無效。繪圖axes的顯示字體好像和編輯器採用的好像不是相同的字體管理方式,但是axes的字體管理界面一直都沒有找到。
換了2020a版本之後,仍然呈現方框。查了一圈博客論壇後,問題好像是:不知道從哪個版本開始,matlab的座標axes默認字體變成了Helvetica,這種字體不支持中文,因此總是會在畫圖時顯示爲亂碼或方框,我遇到的是方框。
Why is “Helvetica” the default axes font type in MATLAB when this font does not exist on my Windows XP machine?
matlab技術支持團隊的回答只是提供了一種解決方案,但是對於爲什麼Helvetica是默認字體沒有給予解釋。
2、問題解決
C = listfonts % 可以查看系統中存在的字體
edit listfonts % 可以打開系統字體列表文件
Ans = get(0,'defaultAxesFontName'); % 運行結果可看到是Helvetica
總結來看,下面的方法可以解燃眉之急,但也不是一勞永逸,每次打開matlab還是要重複一遍。比較好的方法是在matlab的startup.m文件中加入下面的代碼。
set(0,'defaultAxesFontName', 'Monospaced');
set(0,'defaultAxesFontSize', 10);