MATLAB绘图中文显示为方框
MATLAB显示英文和字母没有问题,但是当显示中文时会显示乱码,中文显示为方框,如下图:
可以在绘图命令中添加如下代码:
set(gca,'Fontname','Monospaced');
例如:
% 滤波器系数%低通(直接II型4阶、Fs = 1.8e6Hz、Fc = 1.0e4Hz)(阶跃超调)
b = [ 8.869059018931e-08, 3.547623607572e-07, 5.321435411359e-07, 3.547623607572e-07, 8.869059018931e-08];
a = [1, -3.908786943705, 5.730497730452, -3.734525571664, 0.9128162039662];
% 滤波器系数,乘以(2.^26)之后:
Bn = [6, 24, 36, 24, 6];
An = [0,-262314251, 384567193, -250619769, 61258058];
% % % % 滤波器的幅值响应和相角响应
[H, w] = freqz(b,a);
figure('Name','4阶低通b,a滤波器的频率响应')
subplot(211)
plot(Fs*w/(2*pi), abs(H), 'linewidth',1);
xlabel('频率/Hz'); ylabel('幅值/'); grid on
title('幅频特性');
set(gca,'Fontname','Monospaced');
subplot(212)
plot(Fs*w/(2*pi), angle(H)*180/pi, 'linewidth',1)
xlabel('频率/Hz'); ylabel('相位/^o'); grid on
title('相位特性');
set(gca,'Fontname','Monospaced');
==================START========================================
在MATLAB画图时中文显示乱码的解决办法
打开MATLAB创建一个startup.m文件,输入如下代码
function startup
set(0,'DefaultTextFontname','Monospaced')
set(0,'DefaultAxesFontname','Monospaced')
end
Monospaced可以替换为其他想要的字体,比如"宋体",但是一定要在matlab中粘贴这段代码,不要新建文本文档粘贴代码后修改后缀为.m,否则可能因为编码格式造成设置失败。将这个.m文件保存下来,然后把这个文件复制到MATLAB安装路径下的bin文件目录中,如图所示,这样每次启动MATLAB时会自动运行这个文件。
之后打开MATLAB点击主页中的设置路径,此时startup.m文件已经复制到MATLAB安装路径下的bin文件了,将这个bin路径添加进去,如图所示。
设置完成后点击保存,再点击关闭,然后重新启动MATLAB(重启重启重启!),再运行程序,就可以看到乱码的部分已经正常显示文字了。
原文链接:在MATLAB画图时中文显示乱码的解决办法_matlab跑别人的代码出来的图是乱码-CSDN博客
==================END==========================================