Quick Question - Clean up code

4 visualizaciones (últimos 30 días)
Steve
Steve el 25 de Mzo. de 2012
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?

Respuesta aceptada

Oleg Komarov
Oleg Komarov el 25 de Mzo. de 2012
PO = 0.15;
syms s
Dratio = double(solve(exp(-pi*s/sqrt(1-s^2))-PO));
Dratio(Dratio > 0)
  3 comentarios
Alexander
Alexander el 26 de Mzo. de 2012
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
Oleg Komarov el 26 de Mzo. de 2012
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.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by