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

Vektorisierung

 

noppoel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 27.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2011, 13:30     Titel: Vektorisierung
  Antworten mit Zitat      
Hallo zusammen,

meine Ausgangsmatrix ist u <194081x8784>

Diese soll nun in eine 3D- Matrix der Grösse u = (461,421,8784) umgewandelt werden.

Ich verwende dafür folgende for-schleife:

Code:

for ii = 1:size(u,2)
        u(:,:,ii) = flipud(reshape(vwnd(:,ii),421,461)');
end
 


Hat jemand eine Idee wie ich die for-schleife vektorisieren kann? Rechenzeit ist extrem hoch.

Danke im Voraus!
[/math]
Private Nachricht senden Benutzer-Profile anzeigen


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 23.05.2011, 13:50     Titel:
  Antworten mit Zitat      
Was ist mit

Code:
u = reshape(vwnd(:), [421, 461, 8784])
Private Nachricht senden Benutzer-Profile anzeigen
 
noppoel
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 27.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2011, 13:55     Titel:
  Antworten mit Zitat      
der reshape befehl ist nicht das problem, sondern das flipud in Verbindung mit der transponierten Anfangsmatrix. Richtige Ergebnisse hab ich bisher nur mit for schleife hinbekommen hingekrieg.

vielleicht noch ne Idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.05.2011, 14:37     Titel:
  Antworten mit Zitat      
Hallo

hast du etwa 64 Bit Rechner?

versuch mal so:
Code:

u = reshape(flipud(vwnd), [421, 461, 8784])
u = permute(reshape(flipud(vwnd),[3 4 5]),[2 1 3:8784])
u(:,1:end,:) = u(:,end:-1:1,:)
 
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: 23.05.2011, 15:59     Titel: Re: Vektorisierung
  Antworten mit Zitat      
Hallo noppoel,

Das Permutieren eines großen Arrays ist immer zeitraubend. Oft ist eine FOR-Schleife dabei sogar hilfreich. Aber das kommt auch den Einzelfall an.
Code:
u = rand(194081, 8784);
u = permute(reshape(u, 421, 461, 8784), [2, 1, 3]);
u = u(end:-1:1, :, :);
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.05.2011, 16:27     Titel:
  Antworten mit Zitat      
Mist, habe ich doch zu umständlich gedacht!
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: 23.05.2011, 17:53     Titel:
  Antworten mit Zitat      
Hallo denny,

Permutieren schwierig ist.

In Deinem Code ist etwas durcheinander gegangen:
"permute(reshape(flipud(vwnd),[3 4 5]),[2 1 3:8784])"? Das sind ganz schön viele Dimensionen für eine Permutation, aber wiederum wenig Elemente für RESHAPE. Und das in der ersten Zeile berechnete u wird nicht benutzt.

Gruß, Jan
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 - 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.