2017-10-14 141 views
1

我一直在试图把我的图形轴以log2的比例缩放,但在图上出现了一些很奇怪的东西。第一个数据63出现在开始和x尺度的末尾,由于某种原因,第一个点不出现。此外,这些点并不完全集中在x-ticks上......你知道为什么吗?Matlab log2图形尺寸

在此先感谢您的帮助!

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

你想

set(gca,'XTick',logfreq); 

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

随着你的代码不正确,63只出现在开始和结束,因为有(错误地)10个勾号位置,但您只指定了9个标签,因此第一个是代表eated。 (如果你只指定了8,那么前2将会重复,等等)