Problems with double looping

1 回表示 (過去 30 日間)
Armando MAROZZI
Armando MAROZZI 2020 年 4 月 8 日
編集済み: Andrei Bobrov 2020 年 4 月 8 日
I am trying to implement this double loop. There is lot of material online on double looping in matlab but I don't manage to make it work.
This is my code:
debt = nan(49,1)
for j = -(6:12)
for i = 2:8
debt(j, i) = ((1 + 0.93) - (1 + j)) + 134.77 + (i - 3.3)
end
end
I would like to be able to save debt as a 49x1 vector.
What's wrong with my loop?
Thanks

採用された回答

Andrei Bobrov
Andrei Bobrov 2020 年 4 月 8 日
編集済み: Andrei Bobrov 2020 年 4 月 8 日
Just:
ii = 2:8;
jj = -(6:12);
debt = 132.4 - jj(:) + ii(:)';
debt = debt(:);
or with for-loop:
ii = 2:8;
jj = -(6:12);
debt = nan(7);
for j = 1:7
for i = 1:7
debt(j, i) = 132.4 - jj(j) + ii(i);
end
end
  4 件のコメント
Andrei Bobrov
Andrei Bobrov 2020 年 4 月 8 日
編集済み: Andrei Bobrov 2020 年 4 月 8 日
Variant:
ii = 2:8;
jj = -(6:12);
[j,i] = ndgrid(jj,ii);
debt = 132.4 - j(:) + i(:);
other
n = 7;
ii = (2:8)';
jj = -(6:12)';
debt = 132.4 - jj(kron((1:n)',ones(n,1))) + ii(kron(ones(n,1),(1:n)'));
Armando MAROZZI
Armando MAROZZI 2020 年 4 月 8 日
great! Thanks a lot!

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

その他の回答 (0 件)

カテゴリ

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