How to use linear interpolation to fill gaps to generate a contour (closed surface)

13 visualizzazioni (ultimi 30 giorni)
M = 0 0 0
0 0 3
0 3 3
3 3 3
0 0 0
0 0 3
3 0 0
0 0 0
% in the first colmn, btween 4th & 7th rows, i wan to fill 3. in the last column, between 4th and 6th i want to fill 3.
X = ~all(M==0,2)
N = interp1(find(X),M(X,:), 'nearest')
% its not giving me solution.
i am focusing only first and last column to generate controur (closed surface )
Plz need some tips.
your cooperation is highly appreciated.
warm regards

Risposta accettata

madhan ravi
madhan ravi il 26 Lug 2019
Modificato: madhan ravi il 26 Lug 2019
"i am focusing only first and last column..."
M = [0 0 0;...
0 0 3;...
0 3 3;...
3 3 3;...
0 0 0;...
0 0 3;...
3 0 0;...
0 0 0];
Constant = 3; % example value
f = find(M(:,1));
fx = f .* [true;false(numel(f)-1,1)];
M(setdiff(nonzeros(fx):max(f),f),1) = Constant;
l = find(M(:,end));
lx = l .* [true;false(numel(l)-1,1)];
M(setdiff(nonzeros(lx):max(l),l),end) = Constant
  3 Commenti
madhan ravi
madhan ravi il 26 Lug 2019
Modificato: madhan ravi il 26 Lug 2019
I seemed to have answered your original question "% in the first colmn, btween 4th & 7th rows, i wan to fill 3. in the last column, between 4th and 6th i want to fill 3....
i am focusing only first and last column to generate controur (closed surface )" . You would be better off posting a new question.
M.S. Khan
M.S. Khan il 27 Lug 2019
Dear Dr. M. Ravi if I have matrix in this shape. M =[0 0 0; 2 2 3; 3 3 0; 0 0 0; 3 3 0; 2 2 3; 0 0 0; 3 3 2; 0 0 0; 3 3 3] How can I fill: 3 0 0 3 —> 3 3 3 3 3 0 3 0 2 —> 3 3 3 0 2 3 0 3 2 0 3 0 3 —> 3 3 3 2 0 3 3 3

Accedi per commentare.

Più risposte (1)

KSSV
KSSV il 26 Lug 2019
This will be your function:
Also read about fillgaps.

Categorie

Scopri di più su MATLAB 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