Undefined function or method 'tf' for input arguments of type 'double'.

266 views (last 30 days)
Hi..
i am using MATLAB R2007 version in my PC.
i tried to define a transfer function from the following command..
a = tf([5],[0.8 1])
but my command window is showing an error like......
" Undefined function or method 'tf' for input arguments of type 'double'."
requesting you to help me on this issue...
Regards
venkatapathi.p

Accepted Answer

Jan
Jan on 12 Feb 2013
The error message is clear: "Undefined function or method 'tf' for input arguments of type 'double'." This mean, that there is no TF function defined for doubles. Even clearing will not change this. The found @dfilt\tf function is obviously defined for dfilt objects.
The call a = tf([5],[0.8 1]) is only possible, if you have the Control System Toolbox, see: http://www.mathworks.com/help/control/ref/tf.html
  4 Comments
lounis chehrit
lounis chehrit on 8 Jun 2021
Hello everyone,
I hope you're doing well.
I have an issue, can you help me on this please?
I have two signal column vectors ( input and output ) : ( very large but they both have the same size):
x_inp=[0.0001, -0.0233, ..... ]
x_out=[0.005, -0.0053, ..... ]
i also have a system TF, which is represented like this:
Real( H(s) ) = 23 cos (2*pi*s) + 12 cos (5*pi*s/10) + 1 cos (2*pi*s)/19 + 0.75 cos (5*pi*s/10).
Imag( H(s) ) =11 sin (3*pi*s) + 7 cos (9*pi*vs2) + 10 sin (2*pi*s)/2 + 1.25 sin (4*pi*s/18).
I want to know if , TF( x_out / x_inp ) = H(s).
I tried this :
sys = Real( H(s) ) + i.* Imag (H(s) ).
so to compute the TF( x_out / x_inp ) i did this :
TL1 = tf ( x_inp )
TL2 = tf ( x_out).
and then :
signal = TL2 ./ TL1.
But it doesn't work.
Can anyone please, tell me how can i compute that tf and compare them to the H(s) system.
Or is there another method to see if TF( x_out / x_inp ) = H(s) ? Wether fft method or something like that.
Thank you in advance !
Steven Lord
Steven Lord on 8 Jun 2021
This is not related to the original question so you should ask it as a new question using the Ask link above. When you do post that new question please clarify what "does not work" means.
  • Do you receive warning and/or error messages? If so the full and exact text of those messages (all the text displayed in orange and/or red in the Command Window) may be useful in determining what's going on and how to avoid the warning and/or error.
  • Does it do something different than what you expected? If so, what did it do and what did you expect it to do?
  • Did MATLAB crash? If so please send the crash log file (with a description of what you were running or doing in MATLAB when the crash occured) to Technical Support using the telephone icon in the upper-right corner of this page so we can investigate.

Sign in to comment.

More Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 12 Feb 2013
Edited: Azzi Abdelmalek on 12 Feb 2013
Try
clear tf
a = tf([5],[0.8 1])
% You, probably used tf as a variable in your script, or you don't have a system control toolbox
  8 Comments
Venkatapathi
Venkatapathi on 12 Feb 2013
Hi azzi..
even i got the same error message after clearing the tf..
Jan
Jan on 12 Feb 2013
@Azzi: This means, that there is a TF function for dfilt objects. The same happens, if you add a function in a subfolder like @uint32\strcmp.m. Then calling strcmp(uint32('a')) calls this user-defined function instead of Matlab's builtin STRCMP.

Sign in to comment.


Sai Sandeep padala
Sai Sandeep padala on 14 Mar 2013
but what if you have a licensed control tool box and you still get the same error

danner baron
danner baron on 4 Oct 2016
[num,den]=tfdata(Yz,'v'); zplane(num,den) zgrid Undefined function 'tfdata' for input arguments of type 'sym'.
requesting you to help me on this issue..
  1 Comment
lounis chehrit
lounis chehrit on 8 Jun 2021
Hello ,
I hope you're doing well.
I have an issue, can you help me on this please?
I have two signal column vectors ( input and output ) : ( very large but they both have the same size):
x_inp=[0.0001, -0.0233, ..... ]
x_out=[0.005, -0.0053, ..... ]
i also have a system TF, which is represented like this:
Real( H(s) ) = 23 cos (2*pi*s) + 12 cos (5*pi*s/10) + 1 cos (2*pi*s)/19 + 0.75 cos (5*pi*s/10).
Imag( H(s) ) =11 sin (3*pi*s) + 7 cos (9*pi*vs2) + 10 sin (2*pi*s)/2 + 1.25 sin (4*pi*s/18).
I want to know if , TF( x_out / x_inp ) = H(s).
I tried this :
sys = Real( H(s) ) + i.* Imag (H(s) ).
so to compute the TF( x_out / x_inp ) i did this :
TL1 = tf ( x_inp )
TL2 = tf ( x_out).
and then :
signal = TL2 ./ TL1.
But it doesn't work.
Can anyone please, tell me how can i compute that tf and compare them to the H(s) system.
Or is there another method to see if TF( x_out / x_inp ) = H(s) ? Wether fft method or something like that.
Thank you in advance !

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!