Asked by Gengxuan Shang
on 24 Apr 2018

My problem here is that if I were to run the following code without the for loop and a fixed value for rtemp, then the variable ExpectedReturn is a 1x1 double.

ExpectedReturn = zeros(size(r));

for i = 1:size(r)

Rtemp = r(i);

b = ones(25,1).*(Rtemp*C);

b = [b;C];

[xLP,FVAL,EXITFLAG]=linprog(f,A,b,Aeq,beq,LB,UB,[],options);

ExpectedReturn(i)=-1*round(FVAL/0.01)*0.01;

end

However, if I were to run it as is, with the value of rtemp varying, I get this error:

In an assignment A(:) = B, the number of elements in A and B must be the same.

Error in PortfolioOpt (line 54)

ExpectedReturn(i)=-1*round(FVAL/0.01)*0.01;

Since I am storing a 1x1 double in ExpectedReturn(i), why does it say the dimensions don't match?

Answer by Ahmet Cecen
on 24 Apr 2018

Just convert that to:

ExpectedReturn = cell(size(r));

%...

ExpectedReturn{i}=-1*round(FVAL/0.01)*0.01;

and let it run, then you can come back and see why this is happening. I can't really suggest anything more without seeing a code I can run directly.

Dennis
on 25 Apr 2018

try

for j=1:size(R,2)

Gengxuan Shang
on 26 Apr 2018

Gengxuan Shang
on 26 Apr 2018

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.