1

我在 MuPAD 中编写了以下代码。现在我尝试使用“semilogy”命令在 Matlab 中绘制“Pb 与 sigmas”。但是我的 Y 轴仍然是线性的,它没有变成对数刻度。

任何有关解决此问题的建议都将受到高度赞赏。

N:= 2;
d:= 1*10^3;
a:= 5*10^-2;
ap:= 8.1;
be:= 4;
b0:= 0.25;
rhom:= 0.1;
g:= 2*b0*(1-rhom);
ohm:= 0.5;
f:= ohm + 2*(b0)*rhom;
A:= ((2*(ap)^(ap/2))/((g^(1+(ap/2)))*gamma(ap)))*(((g*be)/(g*be+f))^(be+(ap/2)));

a_k:= (binomial(be-1,k-1)/gamma(k))*((g*be+f)^(1-(k/2)))*((f/g)^(k-1))*(ap/be)^(k/2);
ad:= 0.6;
v:= (sqrt(PI)*a)/(sqrt(2)*ad);
ae:= float(sqrt((ad^2*sqrt(PI)*erf(v))/(2*v*exp(-v^2))));
//sigmas:= 0.05;
z:= ae/(2*sigmas);
x:= (z^2/(1+z^2));
//pt:= 140*10^-3;
//R:= 0.5;
//sigman:= 10^-7;
//Ao:= erf^2(v);
//U_i := ((pt^2*R^2)/(2*sigman^2))*Ao^2*x^2*(g+f)^2;
Y:= (ap^2*be^2*x^2*(g+f)^2)/(16*100*((g*be)+f)^2);
pb:= (1/2)*sum(((z^2*A*a_k*(2^(ap+k-4)))/PI)*(((ap*be)/(g*be+f))^(-((ap+k)/2)))*meijerG(5,1,[1,(2+z^2)/2],[(z^2)/2,ap/2,(1+ap)/2,k/2,(1+k)/2],Y),k=1..be);
S2:= hfarray(1..5,[pb $ sigmas=1..5]);

我的pb价值观是:

[0.3340089062, 0.4380877868, 0.4676408486, 0.4799658727, 0.4862966796]

预期与实际结果:

在此处输入图像描述

4

1 回答 1

0

实际上,在绘制变量或使用绘图之前无需将变量转换为对数刻度semilogy,您可以使用以下命令获得所需的结果:

set(gca,'YScale','log');

一旦创建了绘图(通过plot函数创建的传统绘图)。

于 2017-12-03T17:22:42.863 回答