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

Bestimmte Zeilen einer Matrix überspringen

 

manukino
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2012, 17:04     Titel: Bestimmte Zeilen einer Matrix überspringen
  Antworten mit Zitat      
Hallo,

ich habe eine Matrix M mit Messwerten die zeilenweise gespeichert sind. Ich möchte nun die Zeilen 1; 6; 11; ... (also 1+i*5) in eine andere Matrix X schreiben, sowie die restlichen Zeilen (2-5; 7-10; 12-15; ...) in die Matrix Y packen. Wie bekomme ich die restlichen Zeilen?

Gruß
Manu
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.10.2012, 17:08     Titel:
  Antworten mit Zitat      
Hallo,

eine Möglichkeit, ohne den Anspruch dass es die effizienteste ist:
Code:
X = M(1:5:end,:);
Y = M;
Y(1:5:end,:) = [];


solltest du das ursprüngliche M nicht mehr brauchen, wäre
Code:
M((1:5:end,:) = [];
und dann mit M weiterarbeiten besser.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
manukino
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2012, 17:49     Titel:
  Antworten mit Zitat      
Ich glaube ich sollte mein komplettes Problem schildern:

Ich habe eine Matrix M mit insgesamt 9 Messungen, wobei eine Messung aus einer Zeile x-Werten und 4 Zeilen y-Werten (= 4 Replikate) besteht.
Die erste, sechste, elfte (allgemein (1+i*5)) Zeile enthält die jeweiligen x-Werte. Die Zeilen dazwischen (2-5; 7-10; 12-15; ...) die y-Werte.

Nun will ich alle Daten in einem Cell-Array speichern:
M.Messung1.data.x = x-Werte von Messung 1
M.Messung1.data.y1 = y-Werte des 1. Replikats von Messung 1
M.Messung1.data.y2 = y-Werte des 2. Replikats von Messung 1

Ich bekomme aber nur die x-Werte für alle Messungen in den Cell-Array. Die y-Werte kann ich nicht korrekt erfassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.10.2012, 19:53     Titel:
  Antworten mit Zitat      
Hallo,

na, für die x-Werte scheint der Vorschlag ja schon geholfen zu haben.

Für das "1. Replikat" bräuchte man dann wohl
Code:
Y1 = M(2:5:end,:);


Das Muster für die weiteren Replikate sollte nun klar sein?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
manukino
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2012, 07:45     Titel:
  Antworten mit Zitat      
Ja, das Schema ist klar. Es kann aber sein, dass mehr/weniger Messungen in der Matrix vorliegen bzw. mehr/weniger Replikate gemacht wurden. Daher muss die Zuweisung der x- bzw. y-Werte auch generisch erfolgen. Für x habe ich (1+i*5) "gefunden". Bei y komme ich aber nicht drauf :-/
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.10.2012, 10:12     Titel:
  Antworten mit Zitat      
Hallo,

das steht doch oben scon?
Für das 1. Replikat: 2 + i*5
Für das 2. Replikat: 3 + i*5
Für das k-te Replikat: (k+1) + i*5

Wenn die Anzahl der Replikate variierbar sein soll, muss (auch für x) statt der 5 eine Variable verwendet werden.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
manukino
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2012, 14:23     Titel:
  Antworten mit Zitat      
Vielen Dank! Jetzt hat es funktioniert.
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.