Why do I receive an error when I run this code?

Why do I receive an error when I run this code?
sys=tf([1],[1 1],'InputDelay',2)
sysd=c2d(sys,0.5)
[num,den]=tfdata(sysd)
num=num2str(num{:})
den=num2str(den{:})
num=poly2sym(num,z)
den=poly2sym(den,z)
num=char(num)
den=char(den)

 Respuesta aceptada

Paulo Silva
Paulo Silva el 9 de Jun. de 2011
Bad use of the poly2sym function, you give a string for the first argument but the function expects one array.
Also the z should be like this 'z'
doc poly2sym
Just a tip: num{:} gives you one array, that array can be used by poly2sym
sys=tf([1],[1 1],'InputDelay',2)
sysd=c2d(sys,0.5)
[num,den]=tfdata(sysd)
num=vpa(poly2sym(num{:},'z'),4)
den=vpa(poly2sym(den{:},'z'),4)
nums=char(num)
dens=char(den)
There were some errors, I had to edit the answer several times but I think that now it's all working.

5 comentarios

sadel
sadel el 9 de Jun. de 2011
I removed the num2str function and I receive a very big result
num =
1772028374299899/4503599627370496
den =
z - 2731571253070597/4503599627370496
Why?
Paulo Silva
Paulo Silva el 9 de Jun. de 2011
Because it's the exact value.
Paulo Silva
Paulo Silva el 9 de Jun. de 2011
you can see the same behavior in the documentation example
doc poly2sym
Paulo Silva
Paulo Silva el 9 de Jun. de 2011
ok I fixed the code again, no more big and precise values, happy now?
sadel
sadel el 9 de Jun. de 2011
hahaha yes, thank you very much!!!!

Iniciar sesión para comentar.

Más respuestas (1)

Julián Francisco
Julián Francisco el 9 de Jun. de 2011

0 votos

My Matlab program says that you have not defined the variable z.

Categorías

Más información sobre Large Files and Big Data en Centro de ayuda y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 9 de Jun. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by