Simple interpolation inside matrix
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Simple question, I have matrix A=
[1 1 1 1 1]
[1 1 60 1 1]
[1 1 1 1 1]
and i want to interpolate values inside the matrix to get sometgink like
[1 15 30 15 1]
[15 30 60 30 15]
[1 15 30 15 1]
I know that i have to use interp2 but it is just not working for me...
0 Commenti
Risposta accettata
Andrei Bobrov
il 7 Dic 2013
Modificato: Andrei Bobrov
il 8 Dic 2013
A =[ 1 1 1 1 1
1 1 60 1 1
1 1 1 1 1];
bw = A>1;
B = bwdist(bw,'cityblock');
v = [60./pow2(0:max(B(:))-1),1];
out = v(B+1);
ADD
use scatteredInterpolant:
A = [40 1 1 1 60
1 1 20 1 1
15 1 1 1 1];
[ii,jj] = find(A > 1);
ii = [ii;size(A,1)];
jj = [jj;size(A,2)];
F = scatteredInterpolant(ii,jj,[A(A>1);A(end)]);
[x,y]=ndgrid(1:size(A,1),1:size(A,2));
out = F(x,y);
5 Commenti
Più risposte (0)
Vedere anche
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!