How to linearly change values in matrix

2 Ansichten (letzte 30 Tage)
Hanna Haponenko
Hanna Haponenko am 28 Jan. 2019
Bearbeitet: Hanna Haponenko am 28 Jan. 2019
Observe this matrix:
thismatrix = eye(5)
thismatrix =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
I wish to replace the zeros on either size of the 1's on every row with values descending from 1 by 0.1.
This is what I want:
thismatrix =
1.0000 0.9000 0.8000 0.7000 0.6000
0.9000 1.0000 0.9000 0.8000 0.7000
0.8000 0.9000 1.0000 0.9000 0.8000
0.7000 0.8000 0.9000 1.0000 0.9000
0.6000 0.7000 0.8000 0.9000 1.0000
How can I accomplish this without numerous "for loops"/spaghetti code (especially if my matrix is larger)?

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 28 Jan. 2019
Bearbeitet: Andrei Bobrov am 28 Jan. 2019
toeplitz(1:-.1:.6)
or
1 - abs((1:5) - (1:5)')*.1

Weitere Antworten (0)

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by