フィルターのクリア

Creating a Tridiagonal Matrix with varying values

14 ビュー (過去 30 日間)
Jonathan Miles
Jonathan Miles 2020 年 10 月 2 日
回答済み: David Hill 2020 年 10 月 2 日
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.

採用された回答

David Hill
David Hill 2020 年 10 月 2 日
x=diag(-1:-1:-8)+diag(1:7,-1)+diag(randi(10,1,7),1);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOperating on Diagonal Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by