I would like to vectorize the following code with loop
n = 5;
y = (11:20);
for j = 1 : n + 1
for i = 1 : n + 1
if j>= i
func(i,j) = y(i) ./ sum(y(1:j));
end
end
end
Trial>>
Trial>> func
func =
1.0000 0.4783 0.3056 0.2200 0.1692 0.1358
0 0.5217 0.3333 0.2400 0.1846 0.1481
0 0 0.3611 0.2600 0.2000 0.1605
0 0 0 0.2800 0.2154 0.1728
0 0 0 0 0.2308 0.1852
0 0 0 0 0 0.1975
could someone help me out?

 Réponse acceptée

José-Luis
José-Luis le 23 Oct 2014
n = 5;
y = (11:20)';
y_p = cumsum(y)';
result = triu(bsxfun(@rdivide,y(1:n+1),y_p(1:n+1)))

Plus de réponses (1)

yoshiyuki
yoshiyuki le 23 Oct 2014

0 votes

Thank you so much for very quick answer. sorry to bother you but if I have to add func2, func3 like below n = 5; y = (11:20); for j = 1 : n + 1 for i = 1 : n + 1 if j>= i func(i,j) = y(i) ./ sum(y(1:j)); func2(i,j) = z(j) .* func1(i,j); end end end

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by