LV Newbie - Interpolation XYZ LV oder Matlab - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: LV Newbie - Interpolation XYZ LV oder Matlab (/Thread-LV-Newbie-Interpolation-XYZ-LV-oder-Matlab) |
LV Newbie - Interpolation XYZ LV oder Matlab - bender - 15.05.2008 23:27 Hallo zusammen! Ich habe folgendes Problem bei dem ich keinen Anfang finde. Für meine Zielanwendung habe ich ein (theoretisch) beliebig - praktisch kaum mehr als 30 Spalten langes Array mit 3 Zeilen. Die Zeilen entsprechen den X,Y,Z Koordinaten eines Punktes im Raum. Ich möchte nun zwischen diesen Punkten verschiedenen Interpolationsarten durchführen: Linearinterpolation, Polynominterpolation 2.Grades und eine (kubische) Splineinterpolation. Die einzelnen Interpolaitonsarten sollen mir an bestimmten Stützstellen (variable Anzahl) die Interpolierten Wertepaare zurückgeben - am besten gleich in das Eingangsarray an der richtigen Stelle einfügen. Viele Web- und Hilfeseiten beschäftigen sich meist nur mit der Interpolation in der Ebene - habe für mein Problem noch nicht wirklich viel hilfreiches finden können. Bei der Spline Interpolation habe ich in Matlab eine mehr oder weniger zufriedenstellende Lösung gefunden die ich zur Zeit über ein Matlab Script laufen lasse. Da ich mich aber auch in Matlab auch nur mehr schlecht als recht auskenne komme ich dort mit der restlichen Interpolation auch net wirklich weiter. Prinzipiell bin ich einer Lösung in Matlab auch nicht abgeneigt. Hier mal das MatlabScript für die SplineInterpolation: %Input Variable-------------------- A=[1 10 100;2 20 200; 3 9 27] %A->Liste der zu interpolierenden Punkte points = 50 %points->Anzahl der Stützstellen/Zwischenpunkte - zwischen allen Punkten von A %SplineInterpolation --------------------- splinecurve=cscvn(A(:,[1:end 1])); %Funktionswerte in Matrix aufnehmen % %------------------------------------ d = fnbrk(splinecurve,'dz'; [breaks,coefs,l,k,d] = ppbrk(splinecurve); npoints =points; % x = [breaks(2:l) linspace(breaks(1),breaks(l+1),npoints)]; v = ppual(splinecurve,x); tx = []; temp = zeros(d,0); x = [breaks(2:l) tx x]; v = [ppual(splinecurve,breaks(2:l),'left' temp v]; [x,inx] = sort(x); v = v(:,inx); %Output Variable --------------------- ANEW=v( : , : ) An dieser Stelle muss ich erwähnen, dass ich nicht genau sagen kann wie ich die werte von der "splinecurve" in das Array ANEW reinbekommen habe - lief anch dem "copy&paste" Prinzip (au weia!). Wenn irgendwer ne Idee hat wie man das Problem in LV 7.1 angehen könnte, dann nicht zögern beim posten! Vielen Dank - bender LV Newbie - Interpolation XYZ LV oder Matlab - dc6xs - 16.05.2008 16:18 Wenn Du Mathlab und LV auf einem Rechner hast, nimm doch einfach den Mathlab-Node und lade in diesem das .m-file. Dazu kannst Du dann auch parallel den Algorithmus in LV bauen und Ergebnisse vergleichen. Gruß, Robert LV Newbie - Interpolation XYZ LV oder Matlab - bender - 16.05.2008 17:11 ' schrieb:Wenn Du Mathlab und LV auf einem Rechner hast, nimm doch einfach den Mathlab-Node und lade in diesem das .m-file. Okay - anscheinden hab ich mich da falsch ausgedrückt. Die Splineinterpolation läuft momentan schon als Script im Matlab-Node unter LV. (nur bin ich von der nicht so recht überzeugt) Ob die Intepolaiton jetzt nun in LV oder Matlab läuft ist zweitrangig... Gruß, bender |