Why do I have a Syntax Error?

6 views (last 30 days)
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 Comments
Jan
Jan on 19 Jul 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 on 21 Jul 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?

Sign in to comment.

Accepted Answer

Kevin Claytor
Kevin Claytor on 19 Jul 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 Comment
Tomasz Mlynowski
Tomasz Mlynowski on 21 Jul 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?

Sign in to comment.

More Answers (1)

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

Community Treasure Hunt

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

Start Hunting!