Azzera filtri
Azzera filtri

I need help using the "extract" function in Matlab

16 visualizzazioni (ultimi 30 giorni)
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!
  1 Commento
Nicolas
Nicolas il 8 Lug 2012
I am also using the same code and i have the same problem.. have u fixed it

Accedi per commentare.

Risposta accettata

Wayne King
Wayne King il 7 Ott 2011
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 Commenti
jj
jj il 8 Ott 2011
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 il 15 Lug 2017
Hello did you find a solution to this, it just happens that I ran into the same problem.

Accedi per commentare.

Più risposte (2)

Wayne King
Wayne King il 7 Ott 2011
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 Commento
jj
jj il 7 Ott 2011
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!

Accedi per commentare.


Wayne King
Wayne King il 7 Ott 2011
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 Commenti
Wayne King
Wayne King il 7 Ott 2011
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 il 7 Ott 2011
Oops sorry! Totally misunderstood your question.
It returned the following:
C:\Program Files\MATLAB\R2010b\toolbox\rf\rf\@rfckt\extract.m % rfckt method

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by