# Replace specific/diagonal elements in Matrix using editor, scripting

조회 수: 6 (최근 30일)
Vincent Hodnett 2020년 1월 6일
편집: Vincent Hodnett 2020년 1월 6일
Hello,
Looking a simple way to replace diagonal values in vector to 0. The matrix is a variance-covariance matrix, however in system will be assuming covariance are
zero, and are independent to each. Have the following matrix:
A = [ 2.5 0.25; 0.25 2.4]
B = flip(A) %Flipped to get in correct orientation to select diagonals 0.25, 0.25
%Not sure if it is possible to select mirrored diagonal in original matrix A
Covariance values are 0.25, which would like to set to zero. However these value could change, therefore if had method to replace these diagonal values with respect to m-row, n-column position, or other method?
If can be selected from original matrix A, would be ideal to avoid flipping.
kind rgds
##### 댓글 수: 2없음 표시없음 숨기기
Max Murphy 2020년 1월 6일
Will your system always be a bivariate distribution or will A ever be larger than 2x2?
Vincent Hodnett 2020년 1월 6일
편집: Vincent Hodnett 2020년 1월 6일
Yes, for this instance. Shall only be 2x2 matrix.Thks

댓글을 달려면 로그인하십시오.

### 채택된 답변

Max Murphy 2020년 1월 6일
% If this is to be called iteratively
% Example while loop
iteration = 0;
while (iteration < numel(data)) % Some conditional to stay in your loop
if ~iteration
% Initially
% A = [2.5 0; 0 2.4]; % Can you just initialize it with zeros?
% Alternatively, suppose it was imported elsewhere:
A = [ 2.5 0.25; ... % Top right = A(1,2);
0.25 2.4]; % Bottom left = A(2,1);
A = diag(diag(A)); % Keep only diagonal elements
else
A(1,2) = cov_ab; % Assume you get this from elsewhere
A(2,1) = cov_ba;
end
...
% Get covariance values
doc cov % May be helpful
...
iteration = iteration + 1;
end
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Vincent Hodnett 2020년 1월 6일
편집: Vincent Hodnett 2020년 1월 6일
Hello Max,
Thanks, for advice. Yes, the A = diag(diag(A)) will solve issue. To keep only diagonal element
A = [ 2.5 0.25; 0.25 0.78];
A = diag(diag(A))
% This will give the matrix that is needed, 0.25 and 0.25 are equal to 0 and we have kept only %the variance, diagonal. :) :)
Thanks,
kind regards Vincent

댓글을 달려면 로그인하십시오.

### 카테고리

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