How to replace the numbers in matrix?
Ältere Kommentare anzeigen
Hi,
I'm trying to replace the zeros to the average numbers in between before and after numbers, how to do it?
[1,2,3,0,5,6,0,8,9 ; 1,3,0,0,0,11,13,15,17]
become
[1,2,3,4,5,6,7,8,9 ; 1,3,5,7,9,11,13,15,17]
Thank you
2 Kommentare
Adam Danz
am 18 Jan. 2022
In the updated question, it's not clear how the first two rows below become the last two rows. It looks like you're taking the average in some cases but it's not clear what happens when there are consecutive 0s. Please explain the conversion rule(s).
1 2 3 0 5 6 0 8 9
1 3 0 0 0 10 12 14 16
1 2 3 4 5 6 7 8 9
1 3 5 7 9 10 12 14 16
Han-Yun Chiang
am 18 Jan. 2022
Akzeptierte Antwort
Weitere Antworten (1)
>I'm trying to replace the zeros to the intermediate numbers
I assume you mean you want to replace 0s with the value immediatly above or below the 0. If the entire columns contains 0s, nothing will change.
A = [1,2,3,0,5,6,0,8,9 ; 1,3,0,0,0,10,12,14,16]
A(A==0) = A(flipud(A)==0)
1 Kommentar
Han-Yun Chiang
am 18 Jan. 2022
Kategorien
Mehr zu Logical finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!