I need help using the "extract" function in Matlab

16 次查看(过去 30 天)
Hi everyone,
I am currently building a code, which is modified from another freeshare code available online. However, I am unclear how the "extract" function in Matlab works. I have looked through the help menu and searched using Google as well. However, I haven't been able to get much help.
Currently, the extract function used in the code looks like this:
[F0,Lf0]=extract(x,nf);
I keep getting the error: ??? Undefined function or method 'extract' for input arguments of type 'double'. whenever I try to run the entire code.
The help menu offers me an explanation on the extract function. However, the extract function in the help menu appears to have an extra parameter added. (i.e. [outmatrix, freq] = extract (h,outtype,z0). It explains that: outtype can be one of these case-insensitive strings 'ABCD_parameters', 'S_parameters', 'Y_parameters', 'Z_parameters', 'H_parameters', 'G_parameters', or 'T_parameters'. z0 is the reference impedance for the S-parameters. The default is 50 ohms.
As such, I'm somewhat convinced the original code (which has been around for some time) is missing a parameter that doesn't allow it to run on newer Matlab versions. But, I am not entirely sure since I'm unsure what z0/reference impedance means in this function.
Would appreciate any help on this, or just any links to website that provides an explanation/example on how to use the "extract" function.
Thanks!

采纳的回答

Wayne King
Wayne King 2011-10-7
See, that means that you do not have the extract() you think you have on your path. Enter
>>path
and then see if the folder where you saved your extract.m file is listed or not, it should be at the top if you added it.
If you don't find it, then let's assume that you put extract.m in
c:\myfunctions
Then enter
>>addpath 'c:\myfunctions'
or start pathtool
>>pathtool
and make sure that you add the folder AND make sure that extract.m is ahead (above)
C:\Program Files\MATLAB\R2010b\toolbox\rf\rf\@rfckt\extract.m % rfckt method
When you enter
>>which extract
and see the path to the extract.m you want to use and NOT the rf version. Then you are ready to use it.
  2 个评论
jj
jj 2011-10-8
Many thanks! That solves the problem. But, I'm running into another problem.
It comes up with another error that says:
??? Undefined function or method 'cols' for input arguments of type 'double'.
Error in ==> irfbootfac2step at 55
Fb0 = companion(b0(2:end,:)',lags,cols(e0));
Error in ==> favarpcbootni at 50
[FYresp,Xresp]=irfbootfac2step(Y,lags,X,xindex,slowindex,K,shock,nsteps-1,nrep1,nrep2); % nsteps x equations x error bands
Cols appeared in:
Fb0 = companion(b0(2:end,:)',lags,cols(e0));
I tried using the same method to trouble shoot. But, it seems like cols isn't a function within Matlab? But, I've seen many codes using cols. So, I'm getting a little confused, because this don't seem to be a file that I've.
Apologies that I'm asking that many questions. This code seems much harder and longer to decipher than I initially thought.
Tilen Visnjevec
Tilen Visnjevec 2017-7-15
Hello did you find a solution to this, it just happens that I ran into the same problem.

请先登录,再进行评论。

更多回答(2 个)

Wayne King
Wayne King 2011-10-7
It looks like from the error you are reporting that MATLAB is not able to find the function.
Did you add the folder that the function lives in to the MATLAB search path?
If you enter:
which extract
What is returned?
Use addpath() or pathtool and make sure you add all the folders you need to run the code you have downloaded.
  1 个评论
jj
jj 2011-10-7
Hi,
Thanks for answering. I do have all my codes in the same folder. So, that isn't the problem. The 'extract' function is actually in Matlab as I was able to get some help from the help menu. From what it seems, my extract function seems to be missing a parameter according to the help menu. Unfortunately, I do not know this "extract" function well enough to be able to spot the mistake. Hence, I would appreciate if anyone could help me with it, or refer me to somewhere with examples of 'extract' being used. It seems to be missing the z0 parameter, but I've no idea what it means by a reference impedence, according to the help menu.
Many thanks!

请先登录,再进行评论。


Wayne King
Wayne King 2011-10-7
I'm confused because your tags imply that your use case is an econometrics application, but the extract() help you cite is from a method in the RF Toolbox.
That extract() method expects that the input,h, is a rfckt, rfdata.data or rfdata.network object.
Is this really your application?
  5 个评论
Wayne King
Wayne King 2011-10-7
Why are you not answering the question I asked you?
"Please tell us what
>>which extract
returns. Copy and paste the answer from the MATLAB command window."
jj
jj 2011-10-7
Oops sorry! Totally misunderstood your question.
It returned the following:
C:\Program Files\MATLAB\R2010b\toolbox\rf\rf\@rfckt\extract.m % rfckt method

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by