Mit 3 Vektoren und 3 Funktionen baue ich 3 Ergebnismatrizen. Hier ist ein kurzes und vereinfachtes Beispiel, was ich eigentlich tun:Interpolationswert von 3D-Matrizen
xVec = -0.2:0.05:0.2; % Vector 1
yVec = 0:0.1:0.4; % Vector 2
zVec = 1:3; % Vector 3
[X,Y,Z] = meshgrid(xVec,yVec,zVec);
R1 = (X.^2+Y.^2)./sqrt(Z); % Result matrix 1
R2 = sin(X.^2+Y.^2)./exp(Z); % Result matrix 2
R3 = cos(X.^2+Y.^(1/2)).*(Z.^(1/2)); % Result matrix 3
Ab jetzt, ich rufe 6 mal die interp1
MATLAB-Funktion, um (linear) interpoliert wird die 3 Ergebnismatrizen für einen bestimmten Satz von xVec-, yVec- und zVec-Werten (z. B. xVec = 0.012
, yVec = 0.37
und zVec = 1.45
). Ich benutze die interp1
Funktion, da ich nicht in der Lage war, eine bessere Lösung zu finden (ich denke, das könnte mit interp2
oder interp3
MATLAB-Funktionen möglich sein). Beim Ausführen des MATLAB-Profilers habe ich festgestellt, dass die Aufrufe von interp1 sehr viel Zeit benötigen. Daher würde ich gerne wissen, ob es eine schnellere Möglichkeit gibt, dies zu tun (z. B. weniger Aufrufe mit der MATLAB-Funktion interp2
oder interp3
, oder vielleicht sogar meine 3 Ergebnismatrizen in einem mehrdimensionalen Array zusammenführen)?
Ich weiß nicht, ob es schneller ist, aber ich denke, Matlab empfiehlt "griddedInterpolant". – AnonSubmitter85