changing specific values in diagonal
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
Hello,
I'm trying to change the values in the diagonal based on its column.
let says this is my matrix ( 1/ ,2/ ,3/ ,4/ . . . . are the rows and columns number)
1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 10/ 11/ 12/
1/ 1 1 0 0 1 0 0 0 0 0 0 0
2/ 1 1 1 0 0 1 0 0 0 0 0 0
3/ 0 1 1 1 0 0 1 0 0 0 0 0
4/ 0 0 1 1 0 0 0 1 0 0 0 0
5/ 1 0 0 0 1 1 0 0 1 0 0 0
6/ 0 1 0 0 1 1 1 0 0 1 0 0
7/ 0 0 1 0 0 1 1 1 0 0 1 0
8/ 0 0 0 1 0 0 1 1 0 0 0 1
9/ 0 0 0 0 1 0 0 0 1 1 0 0
10/ 0 0 0 0 0 1 0 0 1 1 1 0
11/ 0 0 0 0 0 0 1 0 0 1 1 1
12/ 0 0 0 0 0 0 0 1 0 0 1 1
in Diag (XX,-1), I want to change those values to 999:
1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ 10/ 11/ 12/
1/ 1 1 0 0 1 0 0 0 0 0 0 0
2/ 999 1 1 0 0 1 0 0 0 0 0 0
3/ 0 1 1 1 0 0 1 0 0 0 0 0
4/ 0 0 1 1 0 0 0 1 0 0 0 0
5/ 1 0 0 0 1 1 0 0 1 0 0 0
6/ 0 1 0 0 999 1 1 0 0 1 0 0
7/ 0 0 1 0 0 1 1 1 0 0 1 0
8/ 0 0 0 1 0 0 1 1 0 0 0 1
9/ 0 0 0 0 1 0 0 0 1 1 0 0
10/ 0 0 0 0 0 1 0 0 999 1 1 0
11/ 0 0 0 0 0 0 1 0 0 1 1 1
12/ 0 0 0 0 0 0 0 1 0 0 1 1
How to know which column to change ?
I defined those varibles:
x = 4
y = 3
I should change those:
column 1
column x+1
column 2x+1
The required:
How to do it? are there any different way to make it automatic for any matrix size?
4 commentaires
Walter Roberson
le 25 Mar 2019
I do not understand why row 3 column 2 is not being changed as well ? Or row 4 column 3 ?
KALYAN ACHARJYA
le 26 Mar 2019
mat=[1 1 0 0 1 0 0 0 0 0 0 0;1 1 1 0 0 1 0 0 0 0 0 0;
0 1 1 1 0 0 1 0 0 0 0 0;0 0 1 1 0 0 0 1 0 0 0 0;
1 0 0 0 1 1 0 0 1 0 0 0;0 1 0 0 1 1 1 0 0 1 0 0;
0 0 1 0 0 1 1 1 0 0 1 0;0 0 0 1 0 0 1 1 0 0 0 1;
0 0 0 0 1 0 0 0 1 1 0 0;0 0 0 0 0 1 0 0 1 1 1 0;
0 0 0 0 0 0 1 0 0 1 1 1;0 0 0 0 0 0 0 1 0 0 1 1];
[rows colm]=size(mat);
r1=2:4:rows;
c1=1:4:colm;
mat(r1,c1)=999 % Modification needed for individual elementwise pair of r1 and c2
Walter Roberson
le 26 Mar 2019
ind = sub2ind(size(m), r1, c1);
mat(ind) = 999;
Réponses (1)
Image Analyst
le 26 Mar 2019
0 votes
Sounds like homework. Some hints: check out toeplitz(), circshift(), and eye()
Cette question est clôturée.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!