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

Laufvariable/-index zur Erstellung unterschiedlicher Matrize

 

n3c4z3

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2012, 12:21     Titel: Laufvariable/-index zur Erstellung unterschiedlicher Matrize
  Antworten mit Zitat      
Hallo liebe MatLab-Gemeinde,

ich habe einen Code, der folgendermaßen aussieht:

Code:
zeilen_B=0;
    for i=1:size(A,1)
        if A(i,1)==5
            zeilen_B=zeilen_B+1;
        end
    end    
    B=zeros(zeilen_B,9);
    counter=1;
    for i=1:size(A,1)
        if A(i,1)==5
            B(counter,:)=[A(i,1),A(i,2),A(i,3),A(i,4),A(i,5),A(i,6),A(i,7),A(i,8),A(i,9),A(i,10),A(i,11),A(i,12)];
            counter=counter+1;
        end
    end


Ich lese zunächst Daten ein, die mir eine Matrix mit 55x12 Zellen "generieren". Nun möchte ich diese Matrix sortieren nach den Einträgen in der ersten Spalte und jeweils als eine eigene Matrix mit separatem Variablennamen speichern. Die erste Spalte der Ausgangsmatrix hat immer für eine gewisse Zeilenanzahl einen konstanten Wert und erhöht sich dann um 2,5. Jetzt könnte ich natürlich x dieser oben aufgeführten Codeblöcke schreiben und jeweils per Hand den Matrixnamen der zu erstellenden Matrix sowie die if-Bedingung anpassen. Jedoch produziert das eine Menge Codezeilen, die ich ganz gewiss einsparen kann, wenn ich nur wüsste wie...
Ich hoffe, mein Problem ausreichend geschildert zu haben, so dass ein gewitzter Mensch hier mir einen Lösungsvorschlag geben kann.

Mfg, n3c4z3


n3c4z3

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2012, 12:38     Titel:
  Antworten mit Zitat      
ohohoh, kleinen Fehler im Code.... ich muss natürlich die Spaltengrösse der Matrix B mit 12 angeben. Ist jedoch für das formulierte Problem an sich unerheblich... trotzdem natürlich auszubessern
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.12.2012, 03:58     Titel: Re: Laufvariable/-index zur Erstellung unterschiedlicher Mat
  Antworten mit Zitat      
Hallo n3c4z3,

Bitte mache das nicht.

Es ist immer eine schlechte Idee, ein wohlgeordnetes Array in einen Haufen unterschiedlicher Variablen aufzuteilen, die viele unterschiedliche Namen besitzen. Wie Du merkst benötigt man dafür entweder sehr viel Code, oder das tückische EVAL. Zu diesem Stichwort findest Du viel im Forum.

Es ist aber immer effizienter, die Daten entweder im Array zu belassen und nur mit den Indizes zu arbeiten, oder ein Cell-Array zu verwenden.

Noch ein Tip:
Code:
% Statt:
B(counter,:)=[A(i,1),A(i,2),A(i,3),A(i,4),A(i,5),A(i,6),A(i,7),A(i,8),A(i,9),A(i,10),A(i,11),A(i,12)];
% Ist das hübscher:
B(counter,:) = A(i, 1:12)

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
n3c4z3

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2012, 11:38     Titel:
  Antworten mit Zitat      
Vielen Dank dir Jan für die Antwort,

werd mal sehen, ob ich trotzdessen mir meine Diagramme passend herstellen kann... und auch vielen Dank für den Tipp, das machts einfacher bzw. eleganter.

Gruß,
n3c4z3
 
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.