Creating a Tridiagonal Matrix with varying values

6 Ansichten (letzte 30 Tage)
Jonathan Miles
Jonathan Miles am 2 Okt. 2020
Beantwortet: David Hill am 2 Okt. 2020
Hello, I am trying to create a tridiagonal matrix with varying values. As shown in the image below
the main diagonal is able to have varying value, but the code only works if the offsetting diagonals are constant values. I am attempting to have all 3 diagonals be varying numerals any help would be greatly appreciated. I will attach my code below.
function [A,b] = ok(k,m)
A=[k];
n=size(A,2)
b=[m];
if size(b,2) < 1
b=[m];
else
b=[m]';
j=size(b,2);
end
N = n;
a = -k;
d =4;
c =4;
M = zeros(N,N)
M( 1:1+N:N*N) = a
M(N+1:1+N:(N*N)-1) = d
M( 2:1+N:N*N-N) = c
As shown above a can =-k , but when I set d or c = to -k I will recieve an error.
Thank you.

Akzeptierte Antwort

David Hill
David Hill am 2 Okt. 2020
x=diag(-1:-1:-8)+diag(1:7,-1)+diag(randi(10,1,7),1);

Weitere Antworten (0)

Kategorien

Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by