Create a loop for this matrix

1 次查看（过去 30 天）
Rayden Plasma2021-6-4

1 -1 0 0 0 ...
-1 2 -1 0 0 ...
0 -1 2 -1 0 ...
0 0 -1 2 -1 ...
0 0 0 -1 2 ...
As you can see, this can go on forever, I and would like to find a way to write loop for a dynamic matrix where this just keeps going unitl a certain number 'N'
4 个评论显示隐藏 3更早的评论
Rayden Plasma 2021-6-4
correct

采纳的回答

David Fletcher 2021-6-4

Just writing something with a loop on the fly (and I stress this is neither robust, nor particularly efficient), but it may be something you can work on in the absence of better answers
clear;
N=10;
base=[1 -1 0;-1 2 -1;0 -1 1];
spliceL=0;
spliceR=N-3;
reform(1,:)=[zeros(1,spliceL) base(1,:) zeros(1,spliceR)];
for iter=2:N-1
reform(iter,:)=[zeros(1,spliceL) base(2,:) zeros(1,spliceR)];
spliceL=spliceL+1;
spliceR=spliceR-1;
end
reform(end+1,:)=[zeros(1,spliceL) base(3,end-1:end) zeros(1,spliceR-1)];
reform
reform = 10×10
1 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 2 -1 0 0 0 0 0 0 0 0 -1 1
1 个评论显示隐藏 无
Rayden Plasma 2021-6-4
Thank you very much!!!

Community Treasure Hunt

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

Start Hunting!

Translated by