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

Matrizen! Zellen!! 4 Dimensionen!!! Hilfe!!!!!

 

PrinzMegahertz
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2010, 14:23     Titel: Matrizen! Zellen!! 4 Dimensionen!!! Hilfe!!!!!
  Antworten mit Zitat      
Hallo allerseits,

bin neu in Matlab, habe aber Erfahrung in anderen Programmiersprachen.

Ich habe folgendes Problem:
Ich habe ein Datenkonstrukt, das folgendermaßen aufgebaut ist:

10 Versuche mit 9 Testreihen mit je 20 Wiederholungen. Zu jeder dieser Kombinationen gibt es eine unterschiedliche Anzahl von Testwerten, so dass auf meine Abfrage myData{1,1,1} z.B. eine Liste mit 10 Zahlen erscheinen würde, für {1,1,2} z.B. eine mit 15 Zahlen.


Mein Problem ist es jetzt, die dritte Dimension (also alle Wiederholungen für eine Versuch/Testreihe Kombination) in einen neuen Array zu speichern und an eine Funktion zu übergeben. Ich weiß aber partout nicht, wie das gehen soll!

So solls aussehen:
tmp{1} zeigt mir die gleichen zehn Zahlen wie oben an.
In den meisten Programmiersprachen würde man diese Abfrage als tmp = myArray[1][1] ausführen, bei Matlab funktioniert das aber so scheinbar nicht.



Wenn ich z.B. schreibe tmp = myData(1,1,: ), so wird tmp zu einem Gebilde mit den Dimensionen 1x1x20 Cells. Ich hätte aber gerne nur 20 Cells in der ersten Dimension, nicht in der dritten.

Ich würde mich sehr freuen, wenn einer von euch einem Matlabnoob unter die Arme greifen könnte.

Vielen Dank!
Gruß
Tobias
Private Nachricht senden Benutzer-Profile anzeigen


rolewinski
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 10.02.10
Wohnort: Ingolstadt
Version: R2009b
     Beitrag Verfasst am: 16.04.2010, 16:15     Titel:
  Antworten mit Zitat      
wenn du die Variable noch nicht definiert hast, was ja nicht möglich sein wird, da deine Anzahl variiert, kannst du mal folgendes probieren:
Code:

 tmp(1:length(myData(1,1,:))) = myData(1,1,:)
 

damit wird deiner tmp-variable vorher gesagt, wie lang sie sein soll und schreibt dann die daten quasi in tmp(1,1) bis tmp(length(myData(1,1,Smile)
quasi eine Reihe mit deinen Daten --> 1-dimensional Wink

Grüße
Roland

PS: vielleicht könntest du beim nächsten Thread einfach ein paar Ausrufezeichen weg lassen ...schließlich stirbst du ja nicht Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
PrinzMegahertz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2010, 10:42     Titel:
  Antworten mit Zitat      
Hallo Roland!

vielen Dank für deinen Vorschlag.
Mittlerweile bin ich über den squeeze Befehl gestolpert, der mein Problem auch sehr gut löst.
Mit den Ausrufezeichen wollte ich die Dramatik und Verzweiflung der Situation zum Ausdruck bringen! Ich werde mich aber in Zukunft an deinen Ratschlag halten!
Grüße!!!
Wink
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.