Replacing zeros in a matrix with an interpolation

13 visualizzazioni (ultimi 30 giorni)
I have a matrix, on which the values become larger as columns go, but some values in that matrix are zero.
E.g. [1,1,1;2,0,2;3,3,3]
I want to replace the values that are zero with an interpolation. In this example theres an increment of 1 per line, so the value zero should become the previous value in that column (1) plus the average increment value (1). Therefore becoming the value 2.
Returning the matrix [1,1,1;2,2,2;3,3,3]
So how can I do this given any matrix, with whatever values.
EDIT: Okay I probably got myself misunderstood, I dont want the zero values to be always the previous value + 1. Let me illustrate further:
M = [1,10;1,0;1,0;1,22]
-Values m(2,2) and m(3,2) are both zero.
-Values m(1,2) and m(4,2) are 10 and 22 which means in 3 rows there was an increment of 12 values, averaging and increment of 4 values per row.
-Interpolating, the values for m(2,2) and m(3,2) should be 14 and 18 respectively.
Thanks alot for you help, appreciated.
  2 Commenti
Bob Choy
Bob Choy il 17 Nov 2012
This shouldnt be a problem, there are never zeros in the first line, meaning I only want to do this for the second line and forth.
Thank you.

Accedi per commentare.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 17 Nov 2012
Modificato: Azzi Abdelmalek il 17 Nov 2012
Ok, if the first line is different from zero
a= [1,1,1;2,0,2;0,3,3]
inc=1;
idx=find(~a)
a(idx)=a(idx-1)+inc
  5 Commenti
Bob Choy
Bob Choy il 18 Nov 2012
Nevermind what I said before, I have a new problem though, Im doing this with a big with lots of zeros to be replaced, and everytime it replaces a zero it returns that matrix, resulting in the program returning thousands of matrixes until it finally gets to the final one with all zeros replaced, this process takes a huge amount of time. How can I tell matlab to return only the final matrix and not show me every one of them?
Azzi Abdelmalek
Azzi Abdelmalek il 18 Nov 2012
Bob, If you have a new problem, post a new question, and make it as clear as possible

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Interpolation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by