Matlab log2图表比例

时间:2017-10-14 18:06:06

标签: matlab scale figure graphic

我一直试图将我的图形轴放在log2比例尺上,但图中出现了一些很奇怪的东西。第一数据63出现在x标度的开始和结束处,并且由于某种原因,第一点不出现。这些点并不完全集中在x-ticks上...你知道为什么吗?

先谢谢你的帮助!!!

clear all; clc;
%% Vectors

freq=[63 125 250 500 1000 2000 4000 8000 16000]
logfreq=log2(freq);
Lp1=[93.9 93.9 93.8 93.8 93.8 93.6 93.3 91.8 87.8]
Lp2=[93.9 93.9 93.8 93.8 94 94.1 94.4 94.6 95.3]
Lp3=[93.9 93.9 93.9 93.8 94.1 94.4 95.2 97.2 100.9]

%% Plot

figure
plot(log2(freq),Lp1,'+-','linewidth',1.7)
hold on; grid on;
plot(log2(freq),Lp2,'+-','linewidth',1.7)
plot(log2(freq),Lp3,'+-','linewidth',1.7)
set(gca,'fontsize',20)
set (gca, 'XTickLabel', logfreq);
set(gca,'XTickLabel',
{'63','125','250','500','1000','2000','4000','8000','16000'})
xlabel('Frequency [Hz]','fontsize',20)
ylabel('Pressure Level [dB]','fontsize',20)
leg=legend({'Sin correcion','Campo libre','Incidencia aleatoria'},'fontsize',18)

这是图:

1 个答案:

答案 0 :(得分:1)

你想要

set(gca,'XTick',logfreq);

而不是set(gca,'XTickLabel',logfreq)

如果您的代码不正确,63会出现在开头和结尾,因为有(错误的)10个刻度位置,但您只指定了9个标签,因此第一个重复。 (如果你只指定了8,那么前两个会重复,等等。)