Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dynamische Funktion mit 3-dimensionalen Matrizen

 

jules_lm
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2018, 09:39     Titel: Dynamische Funktion mit 3-dimensionalen Matrizen
  Antworten mit Zitat      
Hallo,

nach langem Umherprobieren, möchte ich mich nun an euch wenden:

ich habe 24 Matrizen in einer 3-D Matrix zusammengefasst(7,7,24).
Aus der letzten Matrix soll der Maximalwert von Spalte 4 (:,4:24) eruiert werden und die Position ausgegeben werden.
Wenn ich weiß in welcher Zeile der Minimalwert/die Maximalwerte (ja es können auch mehrere Werte als Maximum vorkommen - das muss abgefangen werden) ist, soll das als Ausgangsparameter für Matrix (7,7,23) benutzt werden.

WIe man im Beispiel unten sieht:

Bei Matrix (:,:,24) wird Spalte 4 untersucht. Diese liefert in Zeile 4 und Zeile 5 einen Maximalwert.
Das wiederrum dient als Ausgangsbasis für Matrix (:,:,23). Hier werden die Spalten 4 und 5 (Aufgrund von Zeile 4 und 5!) betrachtet. Diese liefern zum Einen in Spalte 4 in Zeile 4 und Zeile 5 einen Maximalwert und zum Anderen in Spalte 5 in Zeile 5 einen Maximalwert.

So spielen wir das Spiel nochmal weiter. Wir betrachten also in Matrix (:,:,22) Spalte 4 und 5 und beide liefern uns in Zeile 5 einen Maximalwert. Dementsprechend wird in der nächsten Matrix nur Spalte 6 betrachtet ... usw für alle Matrizen.

Was sollte rauskommen?

Im Endeffekt sollte ein Vektor rauskommen der für jeden dritte Dimension der Matrix die zugehörigen Spaltenwerte liefert und es sollte ein Plot generiert werden.

also

x = [1,2,3....,21,22,23,34]
y = [.......,6, 4&5, 4&5,5]

Ich denke fürs plotten sollte es möglich sein, die x Werte zweimal vorkommen zu lassen und 2 y Werte zuordnen zu können.

Mein Ansatz wäre folgender für die letzte Matrix:

Code:
a = Kum_Kosten(:,4,24);  %5. Spalte 24.Dim
maximum = max(a)     %Zeigt Maximalwert an

position = find(abs(a-maximum) < 0.001)  %gibt Position aus


Und dann irgendwas in diese Richtung:

Code:
for i = 23:1
    a = Kum_Kosten(:,position,i)
    maximum = max(a)
    [Zeilen, Spalten] = size(maximum)
    for n=1:Spalten
         Ergebnis_von_schleife(1,1,n) = a(:,n)
         maximum_a = max(Ergebnis_von_schleife(:,:,n))
         position(:,n) = find(abs(a-maximum_a) < 0.001)

    end
end


Ich bitte um eure Hilfe 

Bildschirmfoto 2018-12-07 um 09.16.28.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2018-12-07 um 09.16.28.png
 Dateigröße:  61.89 KB
 Heruntergeladen:  3 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 10.755
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.12.2018, 14:33     Titel: Re: Dynamische Funktion mit 3-dimensionalen Matrizen
  Antworten mit Zitat      
Hallo jules_lm,

Ich bleibe bei der Erklärung im ersten Absatz hängen:
Zitat:
ich habe 24 Matrizen in einer 3-D Matrix zusammengefasst(7,7,24).
Aus der letzten Matrix soll der Maximalwert von Spalte 4 (:,4:24) eruiert werden und die Position ausgegeben werden.

Was bedeutet "Spalte 4 (:,4:24)"` bei einem 7x7x24 array?
Zitat:
soll das als Ausgangsparameter für Matrix (7,7,23) benutzt werden.

Was bedeutet das? Was ist "als Ausgangsparameter benutzen"?

Zitat:
a = Kum_Kosten(:,4,24); %5. Spalte 24.Dim

Wieso ist das die 5. Spalte?

Zitat:
Code:
position = find(abs(a-maximum) < 0.001)  %gibt Position aus

Wieso 0.001?

Ich blicke also bisher noch nicht durch, was Du erreichen willst. Was genau ist Deine Frage?

Gruß, Jan 
Private Nachricht senden Benutzer-Profile anzeigen
 
jules_lm
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2018, 15:06     Titel:
  Antworten mit Zitat      
Sorry ich hatte mich wohl unklar ausgedrückt...

Nach intensiver Arbeit konnte ich mein Problem nun lösen Very Happy

Aber eine abschließende Frage habe ich noch

Ich habe 2 Vektoren x und y und ein X Wert kann teilweise 2 y-Werte haben. Im angehängten Diagramm seht ihr meine Visualisierung. Ich bräuchte in diesem Diagramm aber zwischen den Punkten ganz rechts (jene mit 2 Y Werten) auch eine Verbindung nach rechts. Quasi wie bei einem Decision-Tree.

Im 2. angehängten Bild seht ihr was ich meine.

Jemand eine Lösung dafür? 

kostenoptimaler_verlauf_1_mod.jpg
 Beschreibung:

Download
 Dateiname:  kostenoptimaler_verlauf_1_mod.jpg
 Dateigröße:  38.22 KB
 Heruntergeladen:  2 mal
kostenoptimaler_verlauf_1.jpg
 Beschreibung:

Download
 Dateiname:  kostenoptimaler_verlauf_1.jpg
 Dateigröße:  23.22 KB
 Heruntergeladen:  2 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 10.755
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.12.2018, 21:02     Titel:
  Antworten mit Zitat      
Hallo jules_lm,

Um hierfür Code vorzuschlagen, müsste man wissen, in welcher Form die Inputs vorliegen.

Gruß, Jan 
Private Nachricht senden Benutzer-Profile anzeigen
 
jules_lm
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: Heute 07:58     Titel:
  Antworten mit Zitat      
Hallo,

ja wie gesagt sie liegen in vektorform vor.

Beispiel:

X = [1 2 3 4 5 6 6 7 8 9 9 10 10]
Y = [8 8 8 7 1 2 3 4 5 6 4 8 6]

Bei 1 ist ein Punkt bei 8, bei 2 ist ein Punkt bei 8,...
bei X=6 ist ein Punkt bei 2 und ein Punkt bei 3

Vielen lieben Dank für den Vorschlag/die Vorschläge Smile

LG 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.



goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.