|
|
Herausfiltern von Werten einer 3d-Matrix mit einer 2d Matrix |
|
vatbub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.12.2014, 20:37
Titel: Herausfiltern von Werten einer 3d-Matrix mit einer 2d Matrix
|
 |
|
 |
|
Servus,
ich bin ein Matlab Neuling und muss es der Uni wegen lernen.
Wir haben jetzt sinngemäß die folgende Aufgabe bekommen:
In der dreidimensionalen Matrix ice_grids sind die weltweiten Eisdichten gegeben (Spalten und Zeilen der Matrix) über die Jahre 1996 bis 2006 ("Schichten" der Matrix). Nun soll aber nur mit den Werten in Grönland weiter gerechnet werden.
Dafür ist eine 2-dimensionale Matrix greenland_mask gegeben, bei der alle Elemente 0 sind, die nicht auf Grönland liegen und alle Elemente 1 sind, die auf Grönland liegen.
Jetzt möchte ich also die Werte von ice_grids, an deren Stelle greenland_mask=1 ist. Logischer Weise würde ich dann schreiben
Dann meckert Matlab: Subscript indices must either be real positive integers or logicals.
Also meine Idee: greenland_mask ist ja 2d, ice_grids hingegen 3d
Daher habe ich das ausprobiert:
Aber es kommt der selbe Fehler.
Jetzt habe ich greenland_mask zu einer 3d Matrix gemacht mithilfe dieser for-Schleife:
Danach wieder:
Und immer noch der selbe Fehler.
Ich denke, dass 1 und 0 doch in Matlab den boolschen Werten true und false entsprechen?
P.S.: Was ist eigentlich der Fachbegriff für diese "Schichten" in einer 3-dimensionalen Matrix?
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 15.12.2014, 22:24
Titel:
|
 |
hallo
eine logische matrix würdest du zb mit
erschaffen. anstatt deiner schleife kannst du auch einfach
benutzen. du kannst dann mit logischer indizierung arbeiten oder aber auch einfach mit elementweiser multiplikation
_________________
richtig Fragen
|
|
|
vatbub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.12.2014, 22:47
Titel:
|
 |
Danke für deine Hilfe.
Nur eine Frage: Inwiefern unterscheidet sich das Ergebnis von find(...) und greenland_mask? Schließlich bestehen ja beide nur aus Nullen und Einsen?
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 02:02
Titel:
|
 |
Willkommen vatbub,
Der unterschied dürfte der Datentyp sein. greenland_mask ist vermutlich vom Typ double.
Bspw. mittels
erhält man eine Matrix des Typs logical.
Grüße,
Seban
_________________
Richtig fragen
Debugging
|
|
|
vatbub |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 02:18
Titel:
|
 |
Ah, ok, ich habe meinen Dozenten so verstanden das der double-Wert 1 dem boolschen Wert true und der double-Wert 0 dem boolschen Wert false entspricht. Das bringt Klarheit in die ganze Sache.
Das Programm läuft jetzt übrigens super, also danke nochmals für die Hilfe.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|