how to create a diagonal matrix with the semibandwidth of 4

1 次查看(过去 30 天)
how to create a matrix like this:

采纳的回答

Niels
Niels 2017-1-2
编辑:Niels 2017-1-2
Hi Lin Hongbin
not sure if your picture contains some errors, A(3,1) looks suspicious to me...
look at this and tell me if it fits your wishes :)
a=1:10;
b=11:20;
c=21:30;
d=31:40;
n=length(a);
A=zeros(n);
% set the rest
for i=1:n % rows
A(i,i:i+3)=[a(i),b(i),c(i),d(i)];
end
>> A
A =
1 11 21 31 0 0 0 0 0 0 0 0 0
0 2 12 22 32 0 0 0 0 0 0 0 0
0 0 3 13 23 33 0 0 0 0 0 0 0
0 0 0 4 14 24 34 0 0 0 0 0 0
0 0 0 0 5 15 25 35 0 0 0 0 0
0 0 0 0 0 6 16 26 36 0 0 0 0
0 0 0 0 0 0 7 17 27 37 0 0 0
0 0 0 0 0 0 0 8 18 28 38 0 0
0 0 0 0 0 0 0 0 9 19 29 39 0
0 0 0 0 0 0 0 0 0 10 20 30 40
if u cut off the first and last column it looks more like your picture (beside A(3,1) and A(3,4) etc is not d3 ...)
B=A(1:n,2:n+2)
B =
11 21 31 0 0 0 0 0 0 0 0
2 12 22 32 0 0 0 0 0 0 0
0 3 13 23 33 0 0 0 0 0 0
0 0 4 14 24 34 0 0 0 0 0
0 0 0 5 15 25 35 0 0 0 0
0 0 0 0 6 16 26 36 0 0 0
0 0 0 0 0 7 17 27 37 0 0
0 0 0 0 0 0 8 18 28 38 0
0 0 0 0 0 0 0 9 19 29 39
0 0 0 0 0 0 0 0 10 20 30
so either matrix A or B might be the answer.
But neither A nor B are quadratic. A has size n x n+3 and B: n x n+1
  3 个评论
LIN Hongbin
LIN Hongbin 2017-1-3
Thank you Niels, you did help me solve this problem.Appreciate you a lot.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by