How to create a special diagonal matrix with 2 vectors together?

3 次查看(过去 30 天)
my problem is those vectors are given,but you have to put them like image shown below I dont know how to change the dimension of B so that it can fit into the matrix A = linspace(1,6,6) B = linspace(11,16,6) P.S the question asked us to use diag...
  4 个评论
Stephen23
Stephen23 2018-1-30
CodeElinesa's "Answer" moved here:
Also, I want to know the way to use loop. So you could deal with both scalar and vector example for a and b...
Stephen23
Stephen23 2018-1-30
编辑:Stephen23 2018-1-30
@CodeElinesa: it helps us if you post comments as comments, not answers.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2018-1-30
hint 1:
diag(b(1:end-1), -1)
hint 2: you can add matrices together.
  5 个评论

请先登录,再进行评论。

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2018-1-30
编辑:Andrei Bobrov 2018-1-30
full(gallery('tridiag',B(2:end),A,B(1:end-1)));
or
n = numel(A);
out = full(spdiags([B(:),A(:),B(:)],-1:1,n,n)');

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by