MATLAB遇到问题:绘图窗口显示中文乱码方框的解决方法
今天,在使用MATLAB绘图功能时发现无法显示中文,显示的全是方框乱码“口口口”,如下:
部分程序:
f=imread(image);%读取图像
f=imresize(f,[363,312]);%将图像调整为363*312
figure(1);imshow(f),title('原始图像');
输出结果:
可以看到,中文’原始图像’四个字变成四个方框进行输出了。那么这个问题如何解决呢?
解决方案:
首先说明几点不适用范围:
-
我正常在命令行窗口输入注释+中文是不出现方框乱码的,如果你出现,则该方法肯定不适合你,乖乖的去改一下预设里的字体设置吧~
-
我在命令行中输入‘feature(‘locale’)’同样不出现中文乱码,如果你出现,则本文同样不适用,建议参考博客:https://www.cnblogs.com/leoking01/p/8269516.html
好了,接下来进入正文:
我试过很多办法,比如改字体啦,windos添加字体啦,等等等等,就是不好用。只有一种办法好用:
方法1:
在绘图命令后加一行命令,直接设置字体格式:
代码:
f=imread(image);%读取图像
f=imresize(f,[363,312]);%将图像调整为363*312
figure(1);imshow(f),title('原始图像'),set(gca,'FontName','Microsoft YaHei');
结果:
这时,我确信我的MATLAB版本肯定没问题,肯定能显示出中文,那问题自然就出现在绘图里的默认字体上。
打开该图像的属性编辑器,查看该字体默认为‘Helvetica’,且是无法默认修改的(即改完一次后还需要重新改,并不会默认记住)。
这显然不是我这种懒人的目标。
。。。
经过多方查阅资料发现一种方法:
方法2:
第一步:新建一个startup.m文件, 并保存。
function startup
%% Text Size
% set(0,'DefaultAxesFontsize',25);
% set(0,'DefaultTextFontsize',25);
% set(0,'DefaultAxesFontWeight','bold');
% set(0,'DefaultTextFontWeight','bold');
% %% Text Fonts
% % set(0,'DefaultTextFontname','Arial')
% % set(0,'DefaultAxesFontname','Arial')
set(0,'DefaultTextFontname','宋体')
set(0,'DefaultAxesFontname','宋体')
end
【注】:将字体大小及字体类型调整成自己喜欢的就好,我这里只修改了字体类型为宋体。
第二步:将该setup.m所在的文件夹添加到路径里。
我这里setup.m放在MATLAB文件夹下了,因此直接将该.m文件所在的MATLAB文件夹添加到路径,如下:
然后,保存,关闭。
第三步:重启MATLAB,运行该行代码
注意:一定要重启,不重启发现并没有用。
运行结果:
ok,完美解决~
如果对你有所帮助,点个赞吧~
上一篇: java基础(学习笔记)
下一篇: Java多线程—— 线程的3种创建方式