Quick Question - Clean up code
3 次查看(过去 30 天)
显示 更早的评论
Hi - thanks for your time.
I have the following code:
PO = 0.15;
syms s
Dratio = solve ('0.15=exp(-(pi*s)/(sqrt(1-(s^2))))','s')
However, I'd like the '0.15' in the Dratio equation to be PO but when I do this - matlab returns the value as a long ugly expression of logs instead of 0.51.
Also when the code is used as it currently is (with 0.15 instead of PO) matlab returns a negative answer and a positive one. Is there a way to ignore the negative answer?
0 个评论
采纳的回答
Oleg Komarov
2012-3-25
PO = 0.15;
syms s
Dratio = double(solve(exp(-pi*s/sqrt(1-s^2))-PO));
Dratio(Dratio > 0)
3 个评论
Alexander
2012-3-26
You can also declare |s| to be positive:
PO = 0.15;
syms s positive
Dratio = double(solve(exp(-pi*s/sqrt(1-s^2))-PO))
Dratio =
0.5169
Oleg Komarov
2012-3-26
That's clever! I tried to play around with assume(s > 0) but it didn't work for some reason, didn't know you could use positive.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Assumptions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!