フィルターのクリア

How can I return the values of a loop

6 ビュー (過去 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 ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by