Output Management
3 次查看(过去 30 天)
显示 更早的评论
Hi!
I am asking matlab to do this:
iP = 0; % this is a cell in the dark
iSat = 1e-8;
rS = .5;
rSh = 300;
n = 20000;
subTotal = solve('iP - iSat * (exp(38.66976*(x+dcellCurrent(1)*rS)/n)-1) -(dcellCurrent(1)*rS + x)/rSh - dcellCurrent(1) = 0',x)
So, I have asked it to print the value of x and store the value of x in subTotal, yes?
But when it prints, it says:
subTotal =
iP*rSh - 1.0*rSh*dcellCurrent(1) - 1.0*rS*dcellCurrent(1) + iSat*rSh - 0.025860000165504001059225606779044*n*lambertw(0, (120843*iSat*rSh*exp((120843*rS*dcellCurrent(1))/(3125*n))*exp((120843*rSh*(iP + iSat - dcellCurrent(1) - (rS*dcellCurrent(1))/rSh))/(3125*n)))/(3125*n))
All I want it to print is the number, not the constants and such.
How do I go about changing the output from an expression to a simple number?
回答(1 个)
Walter Roberson
2011-7-18
Leave out the '' around the expression, and leave out the = 0
subTotal = solve(iP - iSat * (exp(38.66976*(x+dcellCurrent(1)*rS)/n)-1) -(dcellCurrent(1)*rS + x)/rSh - dcellCurrent(1), x);
2 个评论
Walter Roberson
2011-7-19
Make sure you
syms x
before executing the solve.
double() around the solve() call, and use .^2 instead of ^2
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!