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

Matrix erweitern bzw aus mehreren Matrizen erstellen

 

Dune
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2011, 14:52     Titel: Matrix erweitern bzw aus mehreren Matrizen erstellen
  Antworten mit Zitat      
Hallo liebe Nutzer,
ich habe ein Problem bezüglich einer Ergebnismatrix.
Ich erhalte nach einem Funktionsaufruf durch eine Schleife verschieden große Matrizen. Alle haben verschieden viele Zeilen, aber immer nur 3 Spalten.
Jetzt möchte ich gerne, dass ich diese Matrizen zusammenfüge.
D.h. ich möchte das Matrix 2 unterhalb Matrix 1 in der Ergebnismatrix erscheint. Das sollte natürlich beliebig lang sein, das heißt danach Matrix 3 und danach Matrix 4, usw.

Ich habe mir bereits ein paar Gedanken gemacht, aber leider funktioniert dies so nicht:

Code:


for m = 1 : handles.n
   
   
   
    eval(['time_temp = handles.time_',num2str(m)]);
    eval(['v_x_temp = handles.v_x_',num2str(m)]);
    eval(['v_x_new_temp = handles.v_x_new_',num2str(m)]);
   
    [Ergebnis_gui,Code] = xxx_Multi(time_temp,v_x_temp,v_x_new_temp) ;          
   
    [r s] = size(Ergebnis_gui);
   
    if m == 1
        x = 0;
    else
        [x y] = size(handles.Ergebnis);
    end;
   
    for w= 1:r
       
        handles.Ergebnis(x+w,:) = Ergebnis_gui(w,:) ;
    end;
   
    handles.Code(m,:) = Code;
               
end;  


Ich übergebe meiner Funktion "xxx_Multi" die drei Größen und erhalte dann die Matrix "Ergebnis_gui".
Nun frage ich die Zeilenanzahl dieser "Ergebnis_gui" ab und erstelle dann eine globale Matrix "Ergebnis" mit den Inhalten der "Ergebnis_gui".
Für die nächste "Ergebnis_Gui" (hier soll m = 2 sein) erhalte ich also eine neue Matrix, die ich dann der Matrix "Ergebnis" anhängen möchte. Daher frage ich die Zeilenanzahl der Matrix "Ergebnis" ab um danach die Zeilen mit der neuen "Ergebnis_Gui" zu füllen.

Ich hoffe, jemand kann damit etwas anfangen.
Wäre super, wenn mir einer helfen könnte.

Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.11.2011, 15:16     Titel:
  Antworten mit Zitat      
sry ich versteh das problem nicht ganz. innerhalb der schleife wird eine funktion aufgerufen die eine unterscheidlich lange ergebnismatrix zurück giebt? und du willst das nach der forschleife alle ergebnisse aneinndergereiht sind oder was?
Code:
for i=1:100
ergebniss=[ergebniss;funktion(input)]
end
 

das hängt das ergebniss immer unten ran glaub ich. is aber nicht schön da der speicher vorher nicht reserviert wird.
ich meld mich wenn mir was besseres einfällt
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: 25.11.2011, 15:57     Titel: Re: Matrix erweitern bzw aus mehreren Matrizen erstellen
  Antworten mit Zitat      
Hallo Dune,

Das hört sich sehr kompliziert an.
Das EVAL-Kommando ist gruselig. Statt den Index in den Namen des Feldes zu packen wie bei "handles.time_1" etc solltest Du besser einen Index verwenden, etwa "handles.time{1}". Dann wäre die Aufgabe sehr einfach.
Das Aneinanderhängen von Matrizen geht per CAT(1, A, B) sehr schnell und einfach.

Einfügen kann ich das nicht in Deinen Code, weil ich ihn nicht verstehe.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Dune
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2011, 08:43     Titel:
  Antworten mit Zitat      
Super, vielen Dank für die Antwort!

Nachdem mein Bruder als angehender Informatiker mal über meinen Code geschaut hat, hat er mich auch darauf hingewiesen, dass ich die Eval-Kommandos überarbeiten sollte. Das habe ich nun erledigt und das Aneinanderhängen von Matrizen hat mit "CAT" wunderbar geklappt.

Vielen Dank!
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.