how to store values in matrix from for loop?

In my code I want to find all the weight, Return and Risk for my portfolio but for loop give me only last result and 'disp()' function is not enough for all the result Here is my code
z = 100;
percent_change = 1;
n = (z/percent_change)+1;
a = (0:percent_change:z);
b = (0:percent_change:z);
c = (0:percent_change:z);
d = (0:percent_change:z);
for i = 1:(z/percent_change)+1
for j = 1:(z/percent_change)+1
for k = 1:(z/percent_change)+1
for l = 1:(z/percent_change)+1
if a(i)+b(j)+c(k)+d(l) == z
p = Portfolio('assetmean', m, 'assetcovar', C, 'lowerbudget', 1, 'upperbudget', 1, 'lowerbound', zeros(size(m)));
p = setDefaultConstraints(p);
pwgt = [a(i); b(j); c(k);d(l)];
[prsk,pret] = estimatePortMoments(p, pwgt);
disp(pwgt);
disp([prsk,pret]);
end
end
end
end
end
Actually I want all the possible portfolio to create frontier ( not just half of it) I'm just started to use matlab for a few months so any tips would really help me. Thankyou

 Réponse acceptée

dpb
dpb le 14 Nov 2016
Simply subscript (preallocate to save reallocation dynamically) the desired output variables...
...
ix=0; % index for cases
for i = 1:n
for j = 1:n
for k = 1:n
for l = 1:n
if a(i)+b(j)+c(k)+d(l) == z
ix=ix+1; % increment the counter
p = Portfolio('assetmean', m, 'assetcovar', C, ...
'lowerbudget', 1, 'upperbudget', 1, ...
'lowerbound', zeros(size(m)));
p = setDefaultConstraints(p);
pwgt{ix} = [a(i); b(j); c(k);d(l)];
[prsk{ix},pret{ix}] = estimatePortMoments(p, pwgt);
...
I don't know anything about what the Financial Toolbox function actually returns but appears to be combination of vectors/arrays possible; hence the outputs are cell arrays containing those elements...
Wonder if there aren't builtin methods to acquire the desired results from the portfolio object itself, though????

2 commentaires

It has just for efficient portfolio but not for all possible portfolio Thankyou for your help It's not work for [prsk{ix},pret{ix}] = estimatePortMoments(p, pwgt); but I think I can adapt on your answer
dpb
dpb le 15 Nov 2016
Modifié(e) : dpb le 15 Nov 2016
Yeah, can't concatenate cells into vector via the [] notation...put the combined into a cell array element.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by