Azzera filtri
Azzera filtri

Creating a Tridiagonal Matrix with varying values

14 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

David Hill
David Hill il 2 Ott 2020
x=diag(-1:-1:-8)+diag(1:7,-1)+diag(randi(10,1,7),1);

Più risposte (0)

Categorie

Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by