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

Dimension extrahieren

 

Kathicita
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 20.09.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2020, 21:20     Titel: Dimension extrahieren
  Antworten mit Zitat      
Hallo,

ich würde gerne die Dritte Dimension einer Matrix extrahieren, damit spätere commands, wie z.B. "mode" anwendbar sind.

Leider habe ich dafür bisher leider noch keine Funktion gefunden.
Würde mich über einen Tipp sehr freuen.

Im Anhang findet ihr zwei 3D Matrizes als Beispiel (bei einer ist die gewünschte 3. Dimension im datetime Format).

Liebe Grüße

Matlab_datetime.mat
 Beschreibung:

Download
 Dateiname:  Matlab_datetime.mat
 Dateigröße:  3.09 MB
 Heruntergeladen:  642 mal
Matlab.mat
 Beschreibung:

Download
 Dateiname:  Matlab.mat
 Dateigröße:  2.69 MB
 Heruntergeladen:  398 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2020, 08:48     Titel:
  Antworten mit Zitat      
Hallo,

wie stellst du dir das mit dem Extrahieren der 3. Dimension vor? Man kann eine oder mehrere Zeilen, Spalten, oder Blätter extrahieren, aber eine Dimension??

Wenn es um das Extrahieren eines Blatts geht:
Code:
data(:,:, k)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Kathicita
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 20.09.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2020, 14:33     Titel:
  Antworten mit Zitat      
Hallo,

ich würde gerne ein paar weitere commands mit den Daten in der dritten Dimension durchführen. Oftmals, ist dies allerdings ein Problem, da das Indizieren dort bisher nicht funktioniert bzw. die Operation nur bei einer einfachen Matrix möglich ist.

Da mir bei diesen weiteren Commands, die Informationen in den ersten zwei Dimensionen egal sind und ich nur gewisse Informationen aus der dritten Dimension herausfinden möchte, würde ich gerne diese in einer eigenen Matrix haben.
Die ursprüngliche 3D Matrix besteht aus 101 x 202 x 72 Informationen.
Ich hätte gerne eine Matrix die nur aus den 72 Informationen besteht.

Es handelt sich hierbei um Top Niederschlagswerte für verschiedene Zeiträume. Hier werden mit Ausnahme des ersten Zeitraumes immer die Top 10 Niederschlagswerte pro Zeitabschnitt dargestellt. Da der erste Zeitraum nur aus einem, anstatt aus 5 Jahren besteht, wurde hier nur die Top 2 berechnet.
Die dritte Dimension beherbergt also:

(:, :, 1) --> Top 1 Niederschlagswert 1970
(:, :, 2) --> Top 2 Niederschlagswert 1970
(:, :, 3) --> Top 1 Niederschlagswert 1971-1975
(:, :, 4) --> Top 2 Niederschlagswert 1971-1975
(:, :, 5) --> Top 3 Niederschlagswert 1971-1975
(:, :, 6) --> Top 4 Niederschlagswert 1971-1975
...
(:, :, 13) --> Top 1 Niederschlagswert 1976-1980
(:, :, 14) --> Top 2 Niederschlagswert 1976-1980
...
(:, :, 72) --> Top 10 Niederschlagswert 2001-2005
usw.


Beim Anwenden von data(:,:, k) bleiben die ersten beiden Informationen ja wie gehabt und nur in der dritten Dimension kann auf ein Blatt zurückgegriffen werden.

Gibt es vielleicht noch eine andere Möglichkeit das Problem zu lösen?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.04.2020, 16:00     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe bisher noch nicht, was überhaupt das Problem bzw. die Aufgabenstellung ist.
Wie sollen denn aus dem 101 x 202 x 72 - Array diese 72 Informationen ermittelt werden?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Kathicita
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 20.09.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2020, 10:44     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich würde gerne aus meiner 3D Matrix aus der dritten Dimension, welche die Tage mit den höchsten Werten darstellt errechnen lassen, welcher Tag an welchem Pixel am häufigsten auftritt.
Dazu würde ich gerne die Funktion

[M,F] = mode(Matlab_datetime,3);

anwenden, hierbei tritt allerdings ein Fehler auf.

Außerdem würde ich gerne wissen, wie viele verschiedene Daten sich insgesamt in dieser Matrix befinden, also an wie vielen verschiedenen Tagen in allen Pixeln zusammen die höchsten 10 Werte auftreten.
Basieren die höchsten Werte beispielsweise nur auf stark Niederschlagsereignisse an z.B. 20 oder eher an 100 verschiedenen Tagen?
Hier hatte ich an die Funktion

C= unique(Matlab_datetime)

gedacht.

Das Problem bei diesen Berechnung scheint zu sein, dass die Daten, die ich gerne hier herausgefiltert hätte in der dritten Dimension sind und das indizieren nicht wirklich funktioniert.
Aus diesem Grund wäre es hier praktisch wenn man quasi nur die Daten der dritten Dimension in einer einzelnen Matrix hätte.

Wird hiermit mein Problem etwas klarer?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.04.2020, 10:57     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
[M,F] = mode(Matlab_datetime,3);

anwenden, hierbei tritt allerdings ein Fehler auf.

Wenn ich das in R2020a mit deinen Daten laufen lasse, läuft der Befehl durch.
Welches Release verwendest du und welche Fehlermeldung bekommst du?

Zitat:
Hier hatte ich an die Funktion
C= unique(Matlab_datetime)
gedacht.

Wenn ich das in R2020a mit deinen Daten laufen lasse, läuft der Befehl durch.
Bekommst du eine Fehlermeldung? Ein unerwartetes Ergebnis?

Zitat:
Aus diesem Grund wäre es hier praktisch wenn man quasi nur die Daten der dritten Dimension in einer einzelnen Matrix hätte.

Ich kann damit weiterhin nichts anfangen. Das ist so, als ob du bei einer Matrix nur die Zeilen oder nur die Spalten haben wolltest. Was soll das denn sein?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Kathicita
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 20.09.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2020, 11:08     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich habe jetzt auch die 2020er Version und es hat funktioniert, vielen Dank!
Ich habe jetzt mittels der Funktionen sowohl die Häufigkeit als auch die verschiedenen auftretenden Daten pro Spalte herausgefunden.

Hier allerdings eine Frage, kann ich das ganze auch pro Pixel berechnen lassen?
Also, dass ich nicht weiß, wie viele verschiedene Tage und wie häufig diese an einem Längengrad auftreten sondern an einer der Pixel und somit einem ganz präzisen Ort.

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.04.2020, 11:27     Titel:
  Antworten mit Zitat      
Hallo,

was genau ist "das ganze"?
was bedeutet in dem Zusammenhang "Pixel"?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.