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

조회 수: 1 (최근 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