|
|
Matrix N x M x P umwandeln in Matrix N*M x P |
|
JJ72 |

Forum-Anfänger
|
 |
Beiträge: 19
|
 |
|
 |
Anmeldedatum: 22.06.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 27.10.2010, 16:59
Titel: Matrix N x M x P umwandeln in Matrix N*M x P
|
 |
Hallo,
ich bearbeite Bilddaten. Dabei stellt sich regelmäßig das "Problem", eine Bildmatrix N x M x P (z.B. 100 x 100 x 3 für ein quadratisches RGB Bild) in eine Matrix N*M x P umzuwandeln. Also in eine Matrix, in dem die Farbwerte in den Spalten, die Pixel in den Zeilen stehen. Ich löse das bislang so:
Hat da jemand eine elegantere Lösung?
Viele Grüße
|
|
|
|
|
HilfeSuchender |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 27.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.10.2010, 18:13
Titel:
|
 |
Hallo!
Wenn ich dich richtig verstehe, dann suchst du das hier:
reshape(matrix, N*M, 3)
bzw
reshape(matrix, size(matrix,1)*size(matrix,2), size(matrix,3))
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 27.10.2010, 18:14
Titel:
|
 |
Hallo
RESHAPE ist das Stichwort, was du suchst
Zuletzt bearbeitet von denny am 28.10.2010, 09:42, insgesamt einmal bearbeitet
|
|
|
JJ72 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 19
|
 |
|
 |
Anmeldedatum: 22.06.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 27.10.2010, 21:15
Titel:
|
 |
Jungs, Spitze!! Funktioniert!
Ich hab das aus Routine immer so gemacht, weil es sich von der Rechenzeit net viel nimmt. Aber so ist die Sache auf jeden Fall viel schöner und eleganter! Dass der Befehl "reshape" heißen könnte, da hätte ich allerdings mal selbst drauf kommen können
Danke
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.10.2010, 15:43
Titel: Re: Matrix N x M x P umwandeln in Matrix N*M x P
|
 |
Hallo JJ72,
die Rechenzeit zwischen Deinem Programm und RESHAPE sollte sich dramatisch unterscheiden!
Die temporäre Variable "layer" in jeder Iteration per CLEAR zu löschen, ist [b]sehr[b] ineffizient.
Natürlich ist RESHAPE am elegantesten, es ginge aber auch so:
Gruß, Jan
|
|
|
JJ72 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 19
|
 |
|
 |
Anmeldedatum: 22.06.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 28.10.2010, 15:52
Titel:
|
 |
Ich gebe dir im Prinzip recht. Durch die Iteration ist das Ganze natürlich viel langsamer. Ich hab mich unvollständig ausgedrückt. Was ich meine ist: NACH der Transformation folgen Berechnungen, die z.T. eine Woche dauern. Da machen sozusagen die paar Minuten unterschied in der Transformation das Kraut nicht fett.
|
|
|
|
|
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.
|
|