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

1-dim Array mit 1- dim Arrays erzeugen

 

Motu
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2015, 17:36     Titel: 1-dim Array mit 1- dim Arrays erzeugen
  Antworten mit Zitat      
Hallo Zusammen,
Wie kann ich ein Array erzeugen, deren Bestandteile andere Zahlen-Arrays sind?
Als Beispiel:
Ich gehe eine Reihe der Zahlen 1-10 durch und vergleiche diese paarweise miteinander: zunächst alle Zahlen größer 1 wählen, dann alle Zahlen größer 2 usw. Zunächst sollen die Zahlen 2-10 in ein Array geschrieben werden, alle Zahlen 3-10 werden in ein weiteres Array geschrieben usw. Am Ende möchte ich alle diese kleinen Arrays in einem größeren Array speichern und auch später einzeln aufrufen können.
Was ich brauche ist - wie definiere ich so ein großes Array und mehrere kleine Arrays?
Danke und Grüße
Yulia
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: 15.07.2015, 10:38     Titel: Re: 1-dim Array mit 1- dim Arrays erzeugen
  Antworten mit Zitat      
Hallo Motu,

Das klingt bisher nach einer einfachen 2D-Matrix. Die "Unterarrays" sind dann einfach die Zeilen, bzw. Spalten.
Ein cell würde auch funktionieren. Aber die spezielle Stärke davon ist es, daten unterschiedlichen Typs und unterschiedlicher Größe zu speichern. In Deinem Fall haben aber alle Vektoren den gleichen Typ und die gleiche Größe. Deshalb ist ein 2D-Array hier wohl effizienter.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2015, 23:18     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für deine Antwort. In meinem Fall haben die Unterarrays ja unterschiedliche Größe. Ich habe es mit cell versucht.
Mein Problem ist es nun - wie kann ich im cell alle Unterarrays speichern?
cellArray = cell{1,n} --> Definiere einen CellArray, in dem n 1-dimensionale Unterarrays gespeichert werden.
Dann speichere ich meine n 1-dimensionale Unterarrays: uA1, uA2, ..., uAn.
Wie füge ich alle diese Unterarrys meinem cellArray zu?
Danke und Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 16.07.2015, 02:47     Titel:
  Antworten mit Zitat      
Hallo,

Code:
n = 10;
cellArray = cell(1, n); % leeres Cell der Größe 1x10 erzeugen
a = 1:10;
cellArray{1, 1} = a;


Die Matlab-Hilfe ist übrigens sehr zu empfehlen: https://de.mathworks.com/help/matla.....data-in-a-cell-array.html

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Motu
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2015, 10:03     Titel:
  Antworten mit Zitat      
Danke Seban!
Das hat funktioniert.
Ich habe noch eine Frage - ich habe ursprünglich einen cellArray angelegt, der zu viele Unterarray enthält. Gibt es eine möglichkeit, die leeren ungenutzen Unterarrays zu löschen?
Code:
res=cell(1,10);
a1=1:2;
a2=1:3;
a3=1:5;
res{1,1}=a1;
res{1,2}=a2;
res{1,3}=a3;

Somit habe ich in meinem CellArray 3 Unterarrays gespeichert. Die 7 leeren Platzhalter im CellArray möchte ich löschen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Vesuv
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 08.07.15
Wohnort: Baden-Württemberg
Version: R2016b
     Beitrag Verfasst am: 16.07.2015, 10:20     Titel:
  Antworten mit Zitat      
wenn du Elemente aus einem cellarray löschen willst musste du mit () anstatt mit {} arbeiten
Code:

res(4:10) =[]
 


und um zu prüfen ob im cellarray was drin steht, würde ich mir eine for-Schleife basteln, die den cellarray einzeln durchgeht und dann jeweiligen index löscht..

keine Ahnung ob dir das weiter hilft Smile
_________________

never touch a running system!
Private Nachricht senden Benutzer-Profile anzeigen
 
Motu
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2015, 11:02     Titel:
  Antworten mit Zitat      
Danke an alle, es hat geholfen! Smile
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.