how to develop n order matrix?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
i wish to make a matrix of nth order fromm K=[2000,-1000,0,0;-1000,2000,-1000,0;0,-1000,2000,-1000;0,0,-1000,1000; so on to nth order]
can anyone please help me with this ...
3 commentaires
Walter Roberson
le 19 Mar 2021
K=[2000,-1000,0,0;-1000,2000,-1000,0;0,-1000,2000,-1000;0,0,-1000,1000]
Réponses (2)
Jan
le 19 Mar 2021
Modifié(e) : Jan
le 19 Mar 2021
With some guessing: You want a tridiagonal matrix with the right bottom element changed. Then:
n = 4;
K = diag(repmat(2000, 1, n)) + ...
diag(repmat(-1000, 1, n-1), 1) + ...
diag(repmat(-1000, 1, n-1), -1)
or
K = zeros(n, n);
nn = n * n;
n1 = n + 1;
K( 1:n1:nn) = 2000;
K(n1:n1:nn) = -1000;
K( 2:n1:nn-n) = -1000;
or
K = toeplitz([2000, -1000, zeros(1, n - 2)])
or
K = full(gallery('tridiag', n, -1000, 2000, -1000))
or
K = conv2(eye(n), [-1000, 2000, -1000], 'same')
any finally:
K(n, n) = 1000;
Or directly:
K = diag([repmat(2000, 1, n - 1), 1000]) + ... % Last element adjusted
diag(repmat(-1000, 1, n - 1), 1) + ...
diag(repmat(-1000, 1, n - 1), -1)
7 commentaires
Walter Roberson
le 19 Mar 2021
n = 7;
MD = 2000*ones(1,n);
SD = -1000*ones(1,n-1);
K = diag(MD) + diag(SD,1) + diag(SD,-1)
Or:
n = 7;
K = zeros(n,7);
K(1:n+1:end) = 2000;
K(2:n+1:end) = -1000;
K(n+1:n+1:end) = -1000;
K
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!