Effacer les filtres
Effacer les filtres

Simple interpolation inside matrix

1 vue (au cours des 30 derniers jours)
Jakub
Jakub le 7 Déc 2013
Commenté : Jakub le 9 Déc 2013
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...

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 7 Déc 2013
Modifié(e) : Andrei Bobrov le 8 Déc 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 commentaires
Andrei Bobrov
Andrei Bobrov le 9 Déc 2013
see code after word ADD in my answer
Jakub
Jakub le 9 Déc 2013
Thank you very much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Interpolation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by