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

2 次查看(过去 30 天)
%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?

采纳的回答

Chunru
Chunru 2022-5-4
% 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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by