vectorization request with loop

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?

 采纳的回答

n = 5;
y = (11:20)';
y_p = cumsum(y)';
result = triu(bsxfun(@rdivide,y(1:n+1),y_p(1:n+1)))

更多回答(1 个)

yoshiyuki
yoshiyuki 2014-10-23

0 个投票

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

类别

帮助中心File Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by