How can I return the values of a loop

5 ビュー (過去 30 日間)
zaxtronix
zaxtronix 2016 年 5 月 12 日
コメント済み: Andrei Bobrov 2016 年 5 月 13 日
I want to return the entire values of k matrice but I only end up with values from the last row.
for i = 1:5,
j = 0:i;
k = i.^2 + i*j + j.^2
end

採用された回答

Felix Lauwaert
Felix Lauwaert 2016 年 5 月 12 日
編集済み: Felix Lauwaert 2016 年 5 月 12 日
You are computing k once for each value of i and overwriting it. If I understand what you want, try:
i = 1:5;
j = 0:5;
k = zeros(numel(i),numel(j));
for a = 1:numel(i)
for b = 1:numel(j)
k(a,b) = i(a)^2 + i(a)*j(b) + j(b)^2;
end
end
display(k)
  1 件のコメント
zaxtronix
zaxtronix 2016 年 5 月 13 日
Thanks a lot man, how did you do it using this numel function, I definitely wouldn't have been able to come about it.

サインインしてコメントする。

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2016 年 5 月 12 日
編集済み: Andrei Bobrov 2016 年 5 月 12 日
n = 5;
k = tril(((1:n)'*ones(1,n+1)).^2+(1:n)'*(0:n)+(ones(n,1)*(0:n)).^2,1);
with for..end loop
n = 5;
k = zeros(n,n+1);
for ii = 1:5,
jj = 0:ii;
k(ii,1:ii+1) = ii.^2 + ii*jj + jj.^2;
end
  2 件のコメント
zaxtronix
zaxtronix 2016 年 5 月 13 日
thanks, this also works perfectly, except doing an extraction will require one dealing with zeros in the array
Andrei Bobrov
Andrei Bobrov 2016 年 5 月 13 日
hm...
[ii,jj] = ndgrid(1:5,0:5);
k = ii.^2 + ii.*jj + jj.^2;

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by