Moin nochmal,
ich glaube ich habe eine Methodik gefunden die wirklich gut für meinen Anwendungsfall ist und näherungsweise korrekt. Ich nutze einfach die Viereckformel!
Wenn das alles fertig ist, dann kann ich das gerne posten. Nur leider hat mein Code im 1. Schritt bisher ein großen Nachteil an einer Stelle: Die Geschwindigkeit...
Ich muss aus der Punktewolke aus 3 separaten Vektoren (pktwolke) ein Matrix generieren (mesh). Und meine bisherige Lösung ist sehr langsam:
%Entferne alle doppelten Einträge
x = unique(pktwolke_X_werte);
y = unique(pktwolke_Y_werte);[X,Y] = meshgrid(x,y);
%Fülle die Z-Matrix durch zeilen/spaltenweisen Vergleich
Z=zeros(size(X)); %Pre-Allo
tic
for k=1:1:length(pktwolke_Z_werte)
%pktwolke_X_werte(k) = aktueller Punkt x;
%pktwolke_Y_werte(k) = aktueller Punkt y;
%X(1,:) reicht, weil die Spalteneinträge alle gleich sind;
%Y(:,1) reicht, weil die Zeileneinträge alle gleich sind;
[c, index_x] =intersect(X(1,:), pktwolke_X_werte(k) );[c, index_y] =intersect(Y(:,1), pktwolke_Y_werte(k) );
Z(index_x, index_y)=pktwolke_Z_werte;
end
toc %Ist ziemlich langsam :/
Hättet ihr eine Idee wie ich das verschnellern könnte?
↧