In an assignment A(:) = B, the number of elements in A and B must be the same.
Mostra commenti meno recenti
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?
Risposte (1)
Ahmet Cecen
il 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.
7 Commenti
Gengxuan Shang
il 25 Apr 2018
Dennis
il 25 Apr 2018
your loop index is called j your cell index i
Gengxuan Shang
il 25 Apr 2018
Ahmet Cecen
il 25 Apr 2018
What does ExpectedReturn look like?
Dennis
il 25 Apr 2018
try
for j=1:size(R,2)
Gengxuan Shang
il 26 Apr 2018
Modificato: Gengxuan Shang
il 26 Apr 2018
Gengxuan Shang
il 26 Apr 2018
Modificato: Gengxuan Shang
il 26 Apr 2018
Categorie
Scopri di più su Multidimensional Arrays in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!