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

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

 Akzeptierte Antwort

Jan
Jan am 12 Feb. 2013

4 Stimmen

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 Kommentare

The error message may be clear, but it does not indicate the root cause so it is of limited value. The root cause is no Control System Toolbox.
In release R2014b we enhanced the capabilities of MATLAB so it now indicates which products offer various functions if you do not have any product that contains the function. See the third item in the Language and Programming section of the Release Notes for MATLAB release R2014b.
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 !
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Azzi Abdelmalek
Azzi Abdelmalek am 12 Feb. 2013
Bearbeitet: Azzi Abdelmalek am 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 Kommentare

run
which tf -all
before executing Azzi's code to see if there are multiple or non TFs
Ah, tf could belong to many toolbox. good to know and thanks Andreas.
Hi..
thanks for answering...
i tried..
which tf -all
it gave the foolowing result..
"C:\Program Files\MATLAB\R2007\toolbox\signal\signal\@dfilt\tf.m.
"but i dont have control system toolbox in my MATLAB package"
Ok, What did you get after?
clear tf
a = tf([5],[0.8 1])
Jan
Jan am 12 Feb. 2013
Bearbeitet: Jan am 12 Feb. 2013
Undefined function or method 'tf' for input arguments of type 'double'.
This does not mean, that "tf" has been defined as a variable, because then the non-integer indexing would be the problem. The reply of "which tf -all" shows also, that "tf" is not a variable. Therefore clearing will not change the situation.
Exact. Then, what does mean
"C:\Program Files\MATLAB\R2007\toolbox\signal\signal\@dfilt\tf.m.
I mean, tf can be defined differently for two toolbox?
Hi azzi..
even i got the same error message after clearing the tf..
@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.

Melden Sie sich an, um zu kommentieren.

Sai Sandeep padala
Sai Sandeep padala am 14 Mär. 2013

1 Stimme

but what if you have a licensed control tool box and you still get the same error
danner baron
danner baron am 4 Okt. 2016

0 Stimmen

[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 Kommentar

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 !

Melden Sie sich an, um zu kommentieren.

Tags

Gefragt:

am 12 Feb. 2013

Kommentiert:

am 8 Jun. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by