MATLAB: ajouter un vecteur interpolé à la matrice

Salut,
J’essaie d’interpoler les valeurs de vitesse sur une gamme de hauteurs et de temps pour ensuite l’enregistrer dans une matrice. J’ai du mal à enregistrer / interpoler correctement les données.
Lorsque j’ai utilisé Ninterp (:, t) = interp2 (ADCP.t, ADCP.Depth, ADCP.N, time_in, Z); J’ai pu le faire fonctionner pour t = 1: 1: 100, mais j’ai besoin qu’il fonctionne pour différents pas de temps, puis juste 1.
ADCP.N – Valeurs de vitesse nord en fonction de la profondeur et du temps (82 × 1000)
ADCP.t – vecteur temps datenum du capteur
ADCP.Depth – profondeur de la colonne d’eau
time_in – un vecteur de temps arbitraire (peut ne pas être un entier) pour interpoler à travers
Z – une plage arbitraire de hauteurs à interpoler
 
Z = [150:-1:1];
Nq = zeros(length(ADCP.t));
for t=1:.25:100
time_in = tStart+datenum([0,0,0,0,0,t]);
Ninterp = interp2(ADCP.t,ADCP.Depth,ADCP.N,time_in,Z);
Nq = Ninterp(t)
end
 

Meilleure réponse

  •  

    Z = [150:-1:1];
    Nq = zeros(length(ADCP.t));
    t=1:0.25:100;
    clear Ninterp
    for i=length(t):-1:1
    time_in = tStart+datenum([0,0,0,0,0,t(i)]);
    Ninterp(:,i) = interp2(ADCP.t,ADCP.Depth,ADCP.N,time_in,Z);
    end