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

arrays zusammenfügen

 

andi_1
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2010, 16:36     Titel: arrays zusammenfügen
  Antworten mit Zitat      
Hallo Leute,

habe hier ein Array "C <1x50 cell>"
jede zelle enthält eine tabelle <i:3>

dieses C teile ich auf in "Co <1x50 cell>" und "Cu <1x50 cell>"
so dass sich zb. C{1,1} aus den tabellen in Co{1,1} und Cu{1,1} zusammensetzt.

Nun führe ich mit Cu einige Operationen durch so dass sich in manchen zellen [0] und in den anderen Zellen tabellen <i:3> befinden.
Co bleibt unverändert.

Jetzt würde ich Co und Cu gerne wieder zusammenführen zu Cou.
in Cou{1,1} soll jetzt zb Co{1,1} und Cu{1,1} enthalten sein. Wenn Cu{1,1} = [0], soll nur Co{1,1} in Cou{1,1} stehen.

kann mir da wer helfen?
wenn was nicht klar ist, bitte nachfragen!
Gruß und Dank
Private Nachricht senden Benutzer-Profile anzeigen


andi_1
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.09.2010, 10:34     Titel:
  Antworten mit Zitat      
Hallo Leute,

hat keiner nen Plan? Ich möchte nur die Zellen zweier Arrays an jeder Zellenposition zu einem Array zusammenfügen.

Vielleicht irgendwie mit "vertcat"?! aber ich bekomms nicht hin...

Gruß und Dank
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.09.2010, 11:34     Titel:
  Antworten mit Zitat      
Hallo Andi,

mir wird Deine Frage nicht klar. Was ist eine "<i:3> Table" ?
Kannst Du an eim kleinen Beispiel zeigen, was Du genau möchtest?
Kannst Du Deinen Versuch mit VERTCAT posten und uns sagen, was da wo nicht funktioniert?

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.09.2010, 15:43     Titel:
  Antworten mit Zitat      
Hallo Leute,

Zitat:
mir wird Deine Frage nicht klar. Was ist eine "<i:3> Table" ?


damit meine ich eine matrix mit i zeilen und 3 spalten.

Habe für mein Problem selbst eine Lösung gefunden. Mittels einer Schleife klappts:

Code:

k = 0
for o = 1:length(C)
   
k = k + 1

Co1 = Co{1,o}
Cu1 = Cu{1,o}

Cuo{1,k} = vertcat(Co1,Cu1)
if exist('Co1')                           %benutzte variablen zurücksetzen für nächsten schleifendurchlauf
    clear ('Co1')
end
if exist('Cu1')
    clear ('Cu1')
end
end

 


Danke trotzdem für die Bemühungen!
Gruß
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.09.2010, 16:20     Titel:
  Antworten mit Zitat      
Hallo Andi,

Zitat:
Code:

k = 0
for o = 1:length(C)    
k = k + 1
 

Dann sind k und o immer gleich groß. Folglich kannst Du auf k auch verzichten.

Zitat:
Code:

Co1 = Co{1,o}
Cu1 = Cu{1,o}
Cuo{1,k} = vertcat(Co1,Cu1)
if exist('Co1')
    clear ('Co1')
end
if exist('Cu1')
    clear ('Cu1')
end
 

Wenn Du Co1 auf den Wert von Ci{1,o} setzt, ist ein CLEAR überflüssig. Zudem ist es sehr tückisch, EXIST ohne 2. Parameter zu benutzen: "Co1" wird gelöscht, wenn:
- Co1 eine Variable ist (ok)
- das File Co1.m im Pfad existiert (das Suchen dauert lange!)
- Ein Mex- oder P-File mit dem Namen Co1 existiert (wieder Suchen!)
- Ein Ordner irgendwo im Pfad oder aktuellen Verzeichnis liegt (wieder alles durchsuchen)
- Eine Java-Class mit diesem Namen existiert (wieder lange suchen).

Wenn Du also EXIST nutzen möchtest (was hier überflüssig ist), immer als "exist(VarName, 'var')".

Gruß, Jan
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.09.2010, 16:30     Titel:
  Antworten mit Zitat      
Nochmal hallo,

ich würde Deinen Code also so zusammenfassen:
Code:

Cuo = cell(1, length(C)); % Pre-allocate!!!
for k = 1:length(C)
  Cuo{k} = vertcat(Co{k}, Cu{k});
end
 

Da die Cells alle {1 x N} Vektoren sind, kann man den vorderen Index 1 weglassen.

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.