n=size(prices,2);
M_coint=zeros(n,n);
for i=1:n;
j=1:n;
M_coint(i,j)=cadf(prices(:,i),prices(:,j),0,1);
M_coint(i,j)=M_coint.adf;
end
message error: The following error occurred converting from struct to double: Error using double Conversion to double from struct is not possible.

1 comentario

fede
fede el 22 de Sept. de 2015
cadf give the following results: ans =
alpha: -0.0199
adf: -3.0082
crit: [6x1 double]
nlag: 1
nvar: 1
meth: 'cadf'
I want to pull out the result of adf

Iniciar sesión para comentar.

 Respuesta aceptada

Stephen23
Stephen23 el 22 de Sept. de 2015
Editada: Stephen23 el 22 de Sept. de 2015

0 votos

cadf does not seem to be an inbuilt MATLAB function, and you give no information about how it is defined or the output that it returns. And you also don't give us the complete error message (which tell us the line), so we have to also guess where this error is occurring in your code.
I like guessing games, so lets try.
First you define
M_coint=zeros(n,n);
which means M_coint is a matrix of class double. Then if we assume that cadf returns a structure, then the line
M_coint(i,j)=cadf(...)
will try to allocate that structure to M_coint.
Ouch! Allocating a structure to a double is an error! It does not work.

4 comentarios

fede
fede el 22 de Sept. de 2015
cadf give the following results: ans =
alpha: -0.0199
adf: -3.0082
crit: [6x1 double]
nlag: 1
nvar: 1
meth: 'cadf'
I want to pull out the result of adf
Stephen23
Stephen23 el 22 de Sept. de 2015
Editada: Stephen23 el 22 de Sept. de 2015
Perhaps you meant to do something like this:
tmp = cadf(prices(:,i),prices(:,j),0,1);
M_coint(i,j) = tmp.adf;
Or alternatively you could save the complete output in a non-scalar structure, which means that you will have all of the data that cadf returns:
N = size(prices,2);
for n = N:-1:1;
S_coint(n) = cadf(prices(:,n),prices,0,1);
end
This also makes accessing the data easy, try:
[S_coint.adf]
{S_coint.method}
horzcat(S_coint.crit)
fede
fede el 22 de Sept. de 2015
mmmm ok the error message disappear, but I have not that I want. I have a matrix, in which in the each columns I have the single stocks, and in the row the time serie price. For example
IBM JPM C p11 p12 p13 p21 p22 p23 .................... pn1 pn2 pn3
I want obtain a output as a var-cov matrix, but in place of the covariance the score of cointegration test, as the following table.
ibm jpm c
ibm - -3.2 -4.2
jpm -1.2 - -2.1
c -2.3 -4.3 -
I can not generate a code suitable to my needs
Stephen23
Stephen23 el 23 de Sept. de 2015
This is a different topic to your original question. Please search for solutions to this new topic in the documentation, on the internet, or in this forum.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre App Building en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Sept. de 2015

Comentada:

el 23 de Sept. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by