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

Elemente höherer Dimensionen einer Matrix als Vektor

 

verwirrt

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2009, 17:55     Titel: Elemente höherer Dimensionen einer Matrix als Vektor
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein recht simples Problem, zu ich leider keine Lösung finde.
Code:

A(:,1,1,1,1,1)
 

liefert mir die Elemente der 1. Dimension der 6-dimensionalen Matrix A als Vektor. Leider scheint dies nur für die 1. beiden Dimensionen zu funktionieren, denn
Code:

A(1,1,:,1,1,1)
 

oder
Code:

A(1,1,1,1,1,:)
 

liefern die Elmente der Dimension 3 bzw. 6 einzeln in einer Art iterativem Prozess.
Gibt es eine Möglichkeit an diesen Vektor zu kommen, ohne ihn sich iterativ selbst zu basteln?
Ich bedanke mich im Voraus für mögliche Antworten Smile


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2009, 19:46     Titel:
  Antworten mit Zitat      
Hallo,

wenn Du folgendes eingibst
Code:

v = a(1,1,:,1,1,1)
 

ist v ein 3D Array (1x1xn).
Was Dich wohl stört sind die beiden singleton Dimensionen.
Diese kannst Du folgendermaßen entfernen:
Code:

v = squeeze(a(1,1,:,1,1,1))
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 21.07.2009, 19:47     Titel:
  Antworten mit Zitat      
also, für drei kann ich mir das noch grade so vorstellen:
Code:
drei=rand(5,5,5)
drei(1,1,:)=123
[drei(1) drei(1+5*5) drei(1+5*5+5*5)]

ans =
   123   123   123


Vielleicht hilft dir das schon ein bisschen weiter. ich spreche da die Elemente einzeln an, so wie sie im Speicher liegen.

wenn du nicht sicher bist, wie lang die einzelnen dimensionen sind, kannst du sie auch mit size() abfragen...
sowas wie
Code:

könnte gehen um zu wissen, wie weit man vorrücken soll. Anstelle length() dann deine jew. Dimensionsgrösse
Private Nachricht senden Benutzer-Profile anzeigen
 
verwirrt

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.07.2009, 13:34     Titel:
  Antworten mit Zitat      
Hallo zusammen,

danke für eure Antworte. squeeze() ist genau meine gesuchte Funktion
 
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.