今天,在使用MATLAB绘图功能时发现无法显示中文,显示的全是方框乱码“口口口”,如下:
部分程序:

f=imread(image);%读取图像
f=imresize(f,[363,312]);%将图像调整为363*312
figure(1);imshow(f),title('原始图像');

输出结果:
在这里插入图片描述
可以看到,中文’原始图像’四个字变成四个方框进行输出了。那么这个问题如何解决呢?

解决方案:

首先说明几点不适用范围:

  1. 我正常在命令行窗口输入注释+中文是不出现方框乱码的,如果你出现,则该方法肯定不适合你,乖乖的去改一下预设里的字体设置吧~
    在这里插入图片描述

  2. 我在命令行中输入‘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,完美解决~

如果对你有所帮助,点个赞吧~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐