INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

2D-Array filtern und Interpolieren



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.04.2013, 10:57
Beitrag #1

Mace Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2013

2012
2013
EN



2D-Array filtern und Interpolieren
Hallo zusammen,

ich beschäftige mich erst seit zwei Monaten mit Labview aber habe bisher schon viel in diesem Forum anonym gelesen und viele Antworten auf alle möglichen Fragen gefunden und möchte mich dafür recht herzlich bedanken. Für folgende Fragestellung bin ich aber über die Forensuche zu keiner Antwort gekommen...:

Ich möchte Werte aus einem 2D-Array interpolieren (ich lese eine txt.-Datei ein, die Messwerte für X,Y enthält und Ausgangsspannungswerte Vx,Vy. Zum Schluss will ich um einen beliebigen Messwert X,Y zu erreichen die zu stellende Spannung Vx,Vy erhalten). Da dies bei großen Arrays sehr viel Zeit in Anspruch nimmt will ich das Ausgangsarray filtern, bzw. lediglich eine Arte ROI in dem Array für die Interpolation heranziehen.
Ich hänge mein TestVI an sowie eine exemplarische Textdatei mit Messwerten. (Nicht wundern über die dritte Spalte mit der Konstanten, die kommt hier nicht zum Tragen...)
Ich hoffe es ist zunächst einmal ersichtlich, was ich bezwecken will und was das angehängte VI bewirkt...
Nun meine Fragen:
1. Wieso funktioniert die Delete From Array Funktion nicht wirklich? Irgendwie ist das Ausgangsarray nie wirklich gekürzt.
2. Wieso benötigt mein letzter Case, in dem eigentlich nichts passiert, ausser dass das VI beendet wird die meiste Zeit?
3. Habe ich es mir viel zu umständlich gemacht und die ganze Sache ließe sich einfacher / schneller lösen? Big Grin

Viele Grüße
Mace

lv12_img


Angehängte Datei(en)
0.0 .txt  LUT_temp.txt (Größe: 364,99 KB / Downloads: 667)

12.0 .vi  LUT_abfrage.vi (Größe: 41,23 KB / Downloads: 300)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.04.2013, 11:05 (Dieser Beitrag wurde zuletzt bearbeitet: 08.04.2013 11:05 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2D-Array filtern und Interpolieren
Hallo Mace,

ohne dein VI anschauen zu können:
Es gibt eine fertige Funktion "2D Array interpolieren" in der Mathematik-Palette. Die sollte können, was du brauchst. Du musst nur deine Daten (die anscheinend in einem regelmäßigen Gitter vorliegen) entsprechend aufbereiten!

Das hatten wir letztens erst diskutiert, finde den Thread aber gerade nicht...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2013, 11:29
Beitrag #3

Mace Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2013

2012
2013
EN



RE: 2D-Array filtern und Interpolieren
Hallo GerdW,

danke für die flotte Antwort.
Die Funktion 2D-Interpolieren verwende ich. Diese tut auch prinzipiell was sie soll, ist jedoch langsam, weshalb ich die Filterung vornehmen möchte.
Anbei nochmals das VI als 2011er Version.

Gruß
Mace
lv11_img


Angehängte Datei(en)
11.0 .vi  LUT_abfrage.vi (Größe: 32,16 KB / Downloads: 265)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2013, 11:45 (Dieser Beitrag wurde zuletzt bearbeitet: 08.04.2013 11:50 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2D-Array filtern und Interpolieren
Hallo Mace,

du verwendest die Instanz "gestreut 1D": die dürfte deshalb langsam sein, weil die Daten jedesmal durchsucht werden müssen.

Wie ich schon schrieb: "Du musst nur deine Daten (die anscheinend in einem regelmäßigen Gitter vorliegen) entsprechend aufbereiten!"
Nach erstem Drüberschauen verwendest du ein regelmäßiges Stützpunkte-Gitter für deine Daten, also bereite sie entsprechend als 2D-Kennfeld auf und verwende die nicht-"gestreute" Interpolations-Variante!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2013, 12:46
Beitrag #5

Mace Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2013

2012
2013
EN



RE: 2D-Array filtern und Interpolieren
Hallo Gerd,

die Daten zu sortieren ist leider nicht so einfach bzw. scheint nicht so viel zu bringen. Ich habe zwar die Ausgangswerte entlang eines Gitters gewählt, die Messwerte verhalten sich aber nur näherungsweise linear dazu. Hinzu kommt, dass aufgrund des Gitters natürlich bei jedem Zeilenwechsel eine Koordinate wieder auf den kleinsten Wert springt - vorausgesetzt man sortiert die gesamte Tabelle nach zwei Spalten jeweils aufsteigend. Die Funktion 2D-Interpolieren erwartet jedoch, dass alle eigehenden Datenreihen monoton sind, das ist demnach nicht erfüllbar und ich kriege lediglich Fehler-Code -20145 raus.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2013, 13:07 (Dieser Beitrag wurde zuletzt bearbeitet: 08.04.2013 13:08 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2D-Array filtern und Interpolieren

Akzeptierte Lösung

Hallo Mace,

wie ich schon sagte: die Daten entsprechend aufbereiten. Einfach 2 Spalten zu einem 2D-Array zusammenfügen reicht da nicht aus!

Du hast jeweils 102 Werte pro X- oder Y-Wert (von +5,0 bis -5,1 in 0,1-Schritten). Du brauchst also ein 2D-Array mit 102×102 Z-Werten und jeweils ein 1D-Array mit 102 Werten für X- und Y-Eingang der Funktion.
Dadurch verlagert sich der Zeitbedarf von "jedesmal das große Array durchsuchen" in "einmalig Datenaufbereitung und dann schnell bilinear interpolieren"...

Die Daten sollten in etwa so aufbereitet werden:
   
(hier für ein kleines Motorkennfeld...)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.04.2013, 13:11
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: 2D-Array filtern und Interpolieren
Der von Gerd erwähnte Thread war hier
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.04.2013, 10:30
Beitrag #8

Mace Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2013

2012
2013
EN



RE: 2D-Array filtern und Interpolieren
Hallo,

vielen Dank für die Hilfe!

Kurzer Hinweis noch: Da meine gemessenen Daten leider nicht so linear zu den Ausgangswerten passen konnte ich nicht einfach nur die Tabelle herumschubsen. Ich habe mir mit dem oben angehängten VI jetzt einfach ein linearisiertes Raster ausgeben lassen, was dann dem Beitrag von GerdW quasi entspricht. In diesem kann ich nun wunderbar (und sehr performant!) bilinear inerpolieren!

Mace
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Shocked Textdatei filtern Ebe419 2 3.033 15.02.2018 22:23
Letzter Beitrag: Ebe419
  Sensorsignal rauschen filtern herriberry 5 6.123 10.07.2015 07:59
Letzter Beitrag: Hubert R.
  Daten aus einem 1D-Array filtern IngDanny7 15 12.060 26.02.2015 16:36
Letzter Beitrag: GerdW
  amplitudemoduliertes Signal filtern Hektor19 4 4.806 18.01.2015 00:27
Letzter Beitrag: Lucki
  Lastprofile interpolieren David_Lab 9 8.190 11.01.2014 13:17
Letzter Beitrag: David_Lab
  Filtern einer Tabelle Ehead 7 6.681 06.03.2013 19:30
Letzter Beitrag: jg

Gehe zu: