MATLAB的使用总结

时间:2023-12-10 21:43:32

Log scale

 %# some random data
x = .^(:);
y = rand(size(x)); plot(log2(x), y) %# plot on log2 x-scale
set(gca, 'XTickLabel',[]) %# suppress current x-labels xt = get(gca, 'XTick');
yl = get(gca, 'YLim');
str = cellstr( num2str(xt(:),'2^{%d}') ); %# format x-ticks as ^{xx}
hTxt = text(xt, yl(ones(size(xt))), str, ... %# create text at same locations
'Interpreter','tex', ... %# specify tex interpreter
'VerticalAlignment','top', ... %# v-align to be underneath
'HorizontalAlignment','center'); %# h-aligh to be centered

设置label位置

xlabh = get(gca,'XLabel');
set(xlabh,'Position',get(xlabh,'Position) - [0 .2 0])

这一句会使得xlabel向下0.2个单位,单位就是y轴的单位。如果y轴的单位是10^5,那么就需要0.2*10^5才能看得出移动了。。。

非线性拟合

 x=[          ];
y=[0.0066 0.0095 0.0119 0.0123 0.0207 0.0770 0.1787 0.3410 0.4961 0.8486 1.0000 ];
fun=inline('1-exp(-(x./a(1)).^a(2))','a','x')
a=lsqcurvefit(fun,[0.4 0.9],x,y)

inline指定函数形式。a(1)为第一个参数,a(2)为第二个需要拟合的参数……[0.4 0.9]对应于每个参数的初值。

 a =
0.5340 -9.0991

也就是最后的函数为 1-exp(-(x/0.5340)^(-9.0991))。