How do I generate a plot in a vector having symbols?
Show older comments
Here is a part of my code where I'm facing problem.
Note: P_Trans, gammaD, gammaE are 1x5 double and N, miuD, miuE, miuP, lambdaD, lambdaE, lambdaP, alphaD, alphaE, alphaP, gamma_D, gamma_E are all 1x1 double.
syms n z
x(n) = (1/alphaE)*(alphaD*(miuD*N+n)/2+alphaP*miuP/2);
phi1=matlabFunction(x);
y(n) = phi1(n) + N*miuE/2;
phi2=matlabFunction(y);
MeijerG=exp(-z);
Psc(z) = (2.^(2-alphaE-alphaP*(alphaE+1))).*epsilonE.*epsilonP./((pi.^(alphaE+alphaP*(alphaE+1)-2).*gamma(N.*miuD))).*symsum(((((-1)^n)/factorial(n))*((lambdaD.^(N.*miuD+n))./(N.*miuD+n)).*((z.^(alphaE.*phi1(n))).*((z-1).^(alphaP.*miuP/2))./(gamma(-alphaD.*(N.*miuD+n)/2).*alphaE.^(alphaD.*(N.*miuD+n)/2+1/2)).*(((lambdaE.^2)/4).^(-phi2(n)).*((alphaP).^(2*phi2(n)-alphaD.*(N.*miuD+n)/2-3/2))).*MeijerG)), n, 0, Inf);
Psec=matlabFunction(Psc);
x = -10:110/(N-1):100;
fplot(P_Trans, Psec(x),'-ro')
Note: P_Trans and Psec(x) are of same length.
After executing handle 'Psec' matlab is giving indefinite answers if I try to disp() it. I tried to generate a plot() it doesn't give Psec(x) on a plot because it has symbols. Here, converting Psec to double also generates an error. And I found out fplot helps in showing sym variables on a graph, but it is running forever. Need help. Please. I'm new to matlab and I know very little, just working on it for an assignment.
Did I use matlabFunction correctly?
Is it a problem caused by symsum? Is there any other easy way to do this?
Answers (1)
Sulaymon Eshkabilov
on 30 Oct 2021
0 votes
There are several unknown (not predefined) variables without which it is impossible to get any values and plots, as well. Check these variables:
alphaE, alphaD, miuD, N, etc.
1 Comment
sai manas duddu
on 30 Oct 2021
Edited: sai manas duddu
on 30 Oct 2021
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!