Effacer les filtres
Effacer les filtres

Why do I have a Syntax Error?

4 vues (au cours des 30 derniers jours)
Tomasz Mlynowski
Tomasz Mlynowski le 19 Juil 2012
Why is this incorrect? how do I correct this?
BuyMatrix=(k,idx(i)) (k,p(idx(i)));
Error: File: pairstrading.m Line: 204 Column: 34 Expression or statement is incorrect--possibly unbalanced (, {, or [.
all variables are correctly specified as far as i know
just a problem with syntax and brackets
thanks
  2 commentaires
Jan
Jan le 19 Juil 2012
This is obviously no valid Matlab syntax. As long, as you do not explain, what you wnat to achieve, it is impossible to guess ameaningful suggestion for improvement. So please clarify, what this command should do.
Tomasz Mlynowski
Tomasz Mlynowski le 21 Juil 2012
What i want to achieve is to have a complete matrix of a for loop to be filled in reading from a [-1 1] vector. i have successfully done this for the first loop however it is not reading correctly the anyPos line
anyPos is to fill the matrix out for k.
for instance i have for i=1:length(idx)
if (k==1)||(anyPos(k-1,idx(i))==0)
if (dist(k,idx(i))>0)
assetsNumber=[idx(i) p(idx(i))];
directionTrade(k,assetsNumber) =[-1 1];
and i want create the correct anyPos to take the correct [-1 1] for idx(i) and p(idx(i))
i want to have
anyPosShort(k,idx(i))=-1;
anyPosLong(k,p(idx(i)))=1;
combined into one line
how do I do this?

Connectez-vous pour commenter.

Réponse acceptée

Kevin Claytor
Kevin Claytor le 19 Juil 2012
What are you trying to do; access a portion of BuyMatrix, or set BuyMatrix to be a matrix? The former would be accomplished with;
BuyMatrix(k,idx(i)) = ...;
The later would be done with;
BuyMatrix = <actual matrix expression>;
Matlab doesn't really know what to do with an expression of the type;
(1,2)
Just type that in and you'll get the same error. This isn't a vector ([1,2]), and it's not telling us to access row 1, col 2 of a matrix, nor does it correspond to any other command, hence the error.
  1 commentaire
Tomasz Mlynowski
Tomasz Mlynowski le 21 Juil 2012
What i want to achieve is to have a complete matrix of a for loop to be filled in reading from a [-1 1] vector. i have successfully done this for the first loop however it is not reading correctly the anyPos line
anyPos is to fill the matrix out for k.
for instance i have for i=1:length(idx)
if (k==1)||(anyPos(k-1,idx(i))==0)
if (dist(k,idx(i))>0)
assetsNumber=[idx(i) p(idx(i))];
directionTrade(k,assetsNumber) =[-1 1];
and i want create the correct anyPos to take the correct [-1 1] for idx(i) and p(idx(i))
i want to have
anyPosShort(k,idx(i))=-1;
anyPosLong(k,p(idx(i)))=1;
combined into one line
how do I do this?

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 19 Juil 2012
Maybe you want
BuyMatrix = [k, idx(i); k, p(idx(i))];

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by