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 in einzelne Vektoren aufspalten

 

Orky
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2013, 16:15     Titel: Matrix in einzelne Vektoren aufspalten
  Antworten mit Zitat      
Hallo Leute,
ich bin neu in diesem Forum und habe folgendes Problem, ich habe eine Riesenmatrix mit 2 Stunden Messdaten und möchte diese in 2 Minuten Intervalle aufteilen, möglichst mit einer for-Schleife.

Die große Matrix nennt sich "data", daraus möchte ich "subdata1"...."subdata120" machen, doch scheitere ich seit nunmehr drei Stunden an der Programmierung der for-Schleife.
Private Nachricht senden Benutzer-Profile anzeigen


Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 14.10.2013, 17:35     Titel:
  Antworten mit Zitat      
Hallo Orky,
von dieser Indizierung kann ich nur abraten. du solltest niemals einen Index im Variablennamen verstecken. Nutze hierfür am besten Cells.

Um dir genauer helfen zu können brauchen wir mehr Informationen. Sind die Messdaten zeitlich konstant?

Je nach Größe der Daten ginge sowas:

Code:


k=1
for m=1:60:length(daten) %Bsp alle sekunde ein Messwert
   datenneu{k}=daten(m:m+60,:);
   k=k+1;
end

 

Das wird jetzt so wie gesagt nicht funktionieren. Aber darauf könntest du aufbauen.
Btw. geht das sicherlich auch ohne Schleife Wink

Gruß, Kascho
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: 14.10.2013, 18:08     Titel:
  Antworten mit Zitat      
Hallo Orky,

Da kann ich Kascho in vollem Unfang zustimmen. Indices gehören nicht in den Namen der Variablen. Besser ist es Indices dazu zu verwenden!

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 14:47     Titel:
  Antworten mit Zitat      
Danke für eure Antworten. Also die Messung erfolgte über einen Zeitraum von 2 Stunden, die .wav Datei ist als 16 bit Format in Matlab eingefügt worden, allerdings zu groß, weswegen die Auftrennung erfolgen soll.
Was genau ist dieses "Cells". Die Messdaten sind je Zeitpunkt konstant.

Wenn ich also beispielswese sage

for k=1:120
start=[(k-1)*5000+1]
ende=start+4999;
.
.
.
end

würde soetwas in entwa funktionieren? Und wie sähe das aus mit der Namenvergabe für die einzelnen Vekoren die dabei entstehen?

Gruß

Orky
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: 17.10.2013, 16:51     Titel:
  Antworten mit Zitat      
Hallo Orky,

Mehr über Cells findest Du in der Dokumentation:
Code:


Zitat:
Die Messdaten sind je Zeitpunkt konstant.

Das liegt in der Natur eines "Zeitpunktes". Was meinst Du damit hier?

Wenn Du wissen möchtest, ob der Code funktioniert, probiere es doch einfach aus.
Man muss hier gar keine unterschiedlichen Variablen-Namen verwenden. Entweder :
Code:
for k=1:120
  start = (k-1)*5000+1;  % Ohne eckige Klammern
  ende = start+4999;
  x = data(start:ende);
  --> Hier wird dann x verwendet um das Ergebnis zu berechnen
end

Oder:
Code:
C = cell(1, 120);
for k=1:120
  start = (k-1)*5000+1;  % Ohne eckige Klammern
  ende = start+4999;
  C{k} = data(start:ende);
end

Dann brauchst Du noch eine weitere Schleife, um die Ergebnisse auszurechnen.

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.