From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Matrizen für Addition skalieren - Scale matrices for summation

Hallo Miteinander / hello everyone!

 

Folgende Problemstellung beschäftig mich:

 

Ich möchte ein Muscheldiagramm erstellen. Dazu habe ich Messwerte aus mehreren Messungen, die zusammen die Konturlinien ergeben sollen.

Die Messungen können jedoch unterschiedlich lang sein und die Differenz zwischen den Werten ist verschieden und nichtlinear.

 

Folgendes Beispiel soll zur Veranschaulichung dienen:

Matrix.png

Das heißt, die (16*16)m*m-Matrix soll mit der (11*1)n*n-Matrix kombiniert werden und für die Darstellung der Konturlinien dienen.

Die Vektoren m und n sind unterschiedlich lang und verchieden nicht-linear gestuft. Die Matrizen sind aber immer quadratisch.

 

Mein einziger Ansatz: Die Matrizen + Vektoren auf eine gemeinsame Länge p und p*p skalieren und dann addieren.

Dazu müssten die Vektromaxima an den Maxima der längsten Vektoren festgemacht werden. Die Schrittweite muss fein genug werden um alle Werte zu erfassen.

 

Hat jemand eine Idee, wie ich das Problem in DIAdem 2013 lösen kann?

 

 

 

 

 

 

 

same in English:

 

following problem: 

I want to plot a contour diagramm. Therefor I've got data from 2 measurements which shall provide the contour lines.

The measurements can have a different length and the differences between the single-values can vary non-linearely.

 

The following example shows what I mean.Matrix.png

That means, the (16*16)m*m-Matrix shall get combined with the (11*1)n*n-Matrix for plotting the contour-lines.

The vectors m & n are differently long and can have non-linear stepwidths. The matrices are allways squarish.

 

My only approach: Skale the matrices and vectors to a common lenght p and p*p and sum them afterwards.

Therefor I'd need the maxima of the longest vectors and a stepwidths, which is small enough to include all values.

 

Does someone have an idee how to solve that in DIAdem 2013?

0 Kudos
Message 1 of 9
(5,748 Views)

Hallo Stefan,

 

um dir wirklich weiterhelfen zu können bräuchte ich ein paar Infos von dir.

 

Einmal ein paar Beispieldaten. Kannst du bitte ein paar Matrizen anhängen?

 

Hast du schon einen Versuch gemacht Das zu Programmieren? Wenn ja, wie?

 

Geht es dir eher um die mathematischen Operationen oder bist du auf der Suche nach den richtigen Befehlen/Funktionen für DIAdem? Und wenn ja, welche suchst du konkret?

 

Wieviel Erfahrung hast du denn schon in DIAdem?

 

 

0 Kudos
Message 2 of 9
(5,715 Views)

Hallo Elli,

 

dann muss ich dich ein wenig in meine Messdaten einweihen.

Ein Skript ließt Daten mehrerer Gruppen ein und verarbeitet diese. Letztendlich mündet das in den Diagrammen 1 (H/Q) und 2 (eta/Q) für verschiedene Messreihen 2400, 2800 und 3008 rpm.

Nun möchte ich daraus ein Muschelkennfeld (H/Q) erstellen, bei dem die Isolinien aus den eta-Werten gebildet werden. Dabei kann ich ja nur ein Wertetripel auswählen und somit einzelne Kennfelder aus den einzelnen Messungen machen, was mir nicht wirklich hilft.

Deshalb muss ich die Messdaten irgendwie vereinheitlichen, was ich mit dem Beispiel oben am besten veranschaulichen kann.

 

Kennfeld-Matrix.png

Die Matrizen kann ich schlecht anhängen, denn wenn ich ein Kanal-Tripel in eine Matrix für den dritten Kanal in Diadem umwandle, entsteht ja für jeden Wert des eta-Kanals ein eigener Kanal.

Ein wenig Diadem-Erfahrung ist mitlerweile da.

 

Beste Grüße

Stefan

0 Kudos
Message 3 of 9
(5,707 Views)

Hallo Stefan,

 

Hast du schon einmal versucht die Triplet Kanäle hintereinander zu hängen?

Also einfach einen Kanal ( x-Werte) an den zweiten (auch x-Werte) anhängen. Wenn du das bei allen gleichmäßig machst , also alle angehängten Daten (x,y,z) übereinstimmen und die Triplets am Ende alle gleich lang sind, dann hast du die Daten von beiden Messungen in einem Triplet. 

Wenn du dieses Triplet dann in eine Matrix konvertieren lässt, sollten alle Werte die in deinen Triplets waren auch dort angezeigt werden.

 

Liebe Grüße,

Elli

Message 4 of 9
(5,654 Views)

Hallo Elli,

 

vielen Dank für den Vorschlag,

die Idee möchte ich überprüfen.

 

Allerdings komme ich gerade mit der Darstellung aus der Matrix heraus nicht klar, obwohl ich der Meinung bin das schon einmal hinbekommen zu haben...

Ich konvertiere also das Triplet der drei gleich langen Kanäle zu einer Matrix mit den Kanälen X,Y,Z1 bis Z271

 

Für den "colour shading" Modus mal nachfolgend darhestellt. Oben aus dem Kanal-Triplet heraus geht es wunderbar. Unten kann ich für die Matrix über ... nur den ersten Kanal "ConvertedMatrixZ1" auswählen, und bin der Meinung, dass er dann bis zum Kanal "ConvertedMatrixZ271" vervollständigt. Denn man kann dort ja nicht mehrere Kanäle auswählen, die die Matrixbesetzung darstellen. Jedenfalls bekomme ich so nichts dargestellt.

 

Triplet-Matrix.png

 

Ich würde mich freuen, wenn mir da kurz auf die Sprünge geholfen werden kann.

Vielen Dank

Stefan

0 Kudos
Message 5 of 9
(5,589 Views)

Hallo Stefan,

 

Hier stehts:

http://digital.ni.com/public.nsf/allkb/6640DF54F12819B38625755B0054E931

 

Entweder manuell auswählen oder DIAdem nimmt so viele Channel wie Y-Werte.

Viele Grüße,

Elli

Message 6 of 9
(5,559 Views)

Hallo Elli,

danke für den Link.

Leider ist das nicht das Problem. Nachdem ich das Kanal-Triplet zur Matrix konvertieren, stimmen die Anzahl der Werte des X-Kanals, die Anzahl der Werte des Y-Kanals und die Anzahl der Z-Kanäle überein. Eine quadratische Matrix eben.

Nur leider wird entsprechend der Screenshots bei der Auswahl von Matrix statt Triplet nichts geplottet (Die X- und Y-Achse wird allerdings korrekt skaliert).

 

Dank & viele Grüße

Stefan

0 Kudos
Message 7 of 9
(5,555 Views)

Hallo Stefan,

 

achso, dann habe ich das falsch verstanden.

Wenn man ein Triplet in einen Contour Diagramm anzeigt läuft zuerst ein 3D Interpolations Algorithmus - daher wird die Oberfläche dargestellt, die alle Triplet Punkte enthält.

Wenn man das Triplet in eine Matrix umwandelt, dann wird dadurch eine Matrix mit nicht äquidistantem Gitter erstellt, die alle Triplet Punkte enthält. Alle anderen Z-Werte sind auf No Value gesetzt. Es wird nicht interpoliert. Da die Matrix nicht genügend gültige Punkte enthält wird sie auch nicht korrekt dargestellt.

Genügt dir nicht die Darstellung der interpolierten Triplets? Warum muss es denn unbedingt eine Matrix sein?

 

Viele Grüße, Elli

 

Message 8 of 9
(5,549 Views)

Hallo Elli,

 

danke, jetzt versteh ich, wo das Problem lag.

Nun habe ich mich nochmal auf deinen Vorschlag aus Antwort 4 gemacht und die Triplets der einzelnen Messungen aneinandergehängt, OHNE sie anschleißend zu einer Matrix zu konvertieren und das dann geplottet, und voilá, genau so soll es aussehen Smiley Very Happy

 

Vielen Dank für die tolle Hilfe, Problem gelöst !

0 Kudos
Message 9 of 9
(5,543 Views)