WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




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: 5
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2018, 10: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:  197 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.12.2018, 15: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: 5
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2018, 16: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:  179 mal
kostenoptimaler_verlauf_1.jpg
 Beschreibung:

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

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.12.2018, 22: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: 5
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2018, 08: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
 
jules_lm
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2018, 10:34     Titel:
  Antworten mit Zitat      
Also hier nochmal um den Sachverhalt zu verdeutlichen:

Es soll quasi immer der aktuelle Punkt mit den nachfolgenden Punkten verbunden werden. Ich hab zum Vergleich das Ausgangsbild bearbeitet und mit grün die gewünschten Linien eingezeichnet.

Hat jemand eine Idee wie das zu realisieren ist?

LG

norm_edit.jpg
 Beschreibung:

Download
 Dateiname:  norm_edit.jpg
 Dateigröße:  42.77 KB
 Heruntergeladen:  171 mal
norm.jpg
 Beschreibung:

Download
 Dateiname:  norm.jpg
 Dateigröße:  26.2 KB
 Heruntergeladen:  176 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.12.2018, 13:42     Titel:
  Antworten mit Zitat      
Hallo jules_lm,

Hattest Du schon erwähnt, wie Du das bisherige Bild erstellst?

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.12.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2018, 13:48     Titel:
  Antworten mit Zitat      
Hallo Jan,

ja da steckt nicht so viel dahinter:

Code:
figure(1)
plot(x, y, '-rs', 'LineWidth', 2,...
 'MarkerEdgeColor', 'b', ...
 'MarkerFaceColor', 'b', ...
 'MarkerSize', 7)
xlabel('Zeit / h')
ylabel('Speicherladung / kWh')
title('Kostenoptimaler Speicherverlauf für einen fiktiven Tag')
xlim([0 24])
ylim([0 10])
grid on
 


als x und y Werte dienen einfach 2 Vektoren, wo manchen X-Werten 2 Y-Werte zugeordnet werden.
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.