How can I create a new matrix which stores the diagonals, but it first starts with a matrix full of zeros?

2 visualizzazioni (ultimi 30 giorni)
%A
rng('default')
r2 = randi(100,3,3); % Creating a 3x3 matrix, with random values from 1 to 100
%B
d = diag(r2) % Obtain the diagonal elements
%C
Metod1 = d(2,1) % Using two parameters (row 2, column 1)
Metod2 = d(3) % Using one parametr (3rd element)
How can I create a new matrix (3x3) which stores the diagonals, but it first starts with a matrix full of zeros?

Risposta accettata

Chunru
Chunru il 4 Mag 2022
% start with zero matrix
n=3;
a = zeros(3)
a = 3×3
0 0 0 0 0 0 0 0 0
% random entries along diagonal
a(1:n+1:n*n) = randi(100, [n 1])
a = 3×3
22 0 0 0 87 0 0 0 57
% alternatively
a = diag(randi(100,[n,1]))
a = 3×3
41 0 0 0 86 0 0 0 96

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