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

1 view (last 30 days)
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)

Accepted Answer

Paulo Silva
Paulo Silva on 9 Jun 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 Comments
Paulo Silva
Paulo Silva on 9 Jun 2011
ok I fixed the code again, no more big and precise values, happy now?
sadel
sadel on 9 Jun 2011
hahaha yes, thank you very much!!!!

Sign in to comment.

More Answers (1)

Julián Francisco
Julián Francisco on 9 Jun 2011
My Matlab program says that you have not defined the variable z.

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!