How to linearly change values in matrix

2 visualizaciones (últimos 30 días)
Hanna Haponenko
Hanna Haponenko el 28 de En. de 2019
Editada: Hanna Haponenko el 28 de En. de 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)?

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 28 de En. de 2019
Editada: Andrei Bobrov el 28 de En. de 2019
toeplitz(1:-.1:.6)
or
1 - abs((1:5) - (1:5)')*.1

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by