J'utilise interp1 pour inteprolate certaines données:méthode plus rapide d'interpolation en Matlab
temp = 4 + (30-4).*rand(365,10);
depth = 1:10;
dz = 0.5; %define new depth interval
bthD = min(depth):dz:max(depth); %new depth vector
for i = 1:length(temp);
i_temp(i,:) = interp1(depth,temp(i,:),bthD);
end
Ici, j'augmente la résolution de mes mesures en interpolant les mesures de 1 m par incréments de 0,5 m par incréments. Ce code fonctionne bien, c'est-à-dire qu'il me donne la matrice que je cherchais. Cependant, quand j'applique ceci à mes données réelles, cela prend beaucoup de temps à s'exécuter, principalement parce que je cours une boucle supplémentaire qui traverse plusieurs cellules. Existe-t-il un moyen de réaliser ce qui est décrit ci-dessus sans utiliser la boucle, en d'autres termes, existe-t-il une méthode plus rapide?
Est-ce que i_temp dans la boucle 'for' est une faute de frappe? Voulez-vous dire layerP? – Peter
Serait-il plus logique d'utiliser 'i_temp = interp1 (depth, temp, bthD)'? – dustincarr
Merci, modifié maintenant, en ce qui concerne la réponse fournie par Dan Becker: Je suis à la recherche d'une solution qui pourrait éviter les boucles! – KatyB