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

Ergebnissmatrizzen fortlaufend Nummerieren

 

Maik aus Magdeburg

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2012, 01:45     Titel: Ergebnissmatrizzen fortlaufend Nummerieren
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem. Ich habe eine Lösungs-Matrix mit mehr als 100000 Zeilen und 4 Spalten mit dem Namen „Loesungs“. In der 4. Spalte stehen ausschließlich ganze positive Zahlen im Bereich von größer Null bis ca 40.
Ich möchte jetzt in einer Schleife schauen welcher Wert in der j-ten Zeile in der 4-ten Spalte steht. Dabei soll er bei Zeile Eins beginnen und alle Zeilen durchlaufen. Dann soll er die ganze Zeile in eine Matrix schreiben die „Loesungsx“ heißt. Z.B. in der ersten Zeile 1 Spalte 4 steht eine 2. das heißt er erzeugt mir eine Lösungsmatrix die „Loesungs2“ heißt und schreibt die komplette Zeile in die neue Matrix. Alle weiteren Zeilen bei denen in der 4-ten Spalte eine 2 steht, sollen ebenfalls in diese Matrix geschrieben werden. Die Bezeichnung der Matrizzen soll dabei automatisch erfolgen. (4 Spalte eine 5 soll in „Loesungs5“ geschrieben werde, 4 Spalte eine 8 soll in „Loesungs8“ , … Ich habe zur automatischen oder auch fortlaufenden Nummerierung 10 Beiträge hier im Forum gefunden, jedoch es mit dieser Hilfe nicht hinbekommen. Bisher habe ich einen recht umfangreichen Code der jedoch fest ist (wenn ich nur Zahlen von 1-15 drin stehen sollte er auch nur 15 Matrizzen erzeugen und nicht das er immer 40 Lösungsmatrizzen erstellt. Ich sitze seit Tagen an dem Problem und hoffe Ihr könnt mir helfen.

Mit freundlichen Grüßen
Maik


Mein Beispielcode der leider nicht funtioniert
Code:

for j = 1:1:Zeilenanzahl;   % Durchläuft alle Zeilen der Lösungsmatrix
            %lösung der startwerte
        for ind=1:1:40    
            [Loesungs,int2str(ind)](j,:)=[];
           if Loesungs(ind),(j,4)==1;
                 Loesungs(ind)=Loesungs(j,:);
           end
        end
end
 


dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2012, 02:24     Titel:
  Antworten mit Zitat      
Du solltest anstelle von 40 Einzelwerten ein Cellarray mit allen 40 Lösungen verwenden, das ist syntaktisch deutlich einfacher.
Außerdem scheinst du auf den Eingabewerten zu arbeiten und in die gleiche Variable die Ausgabe zu schreiben, mag möglich sein ist aber bestimmt nicht einfach.


Code:
for wert=1:40
    zeilen=find(Loesungs(:,4)==wert); %identifiziere alle Zeilen die in der 4. Spalte "wert" stehen haben
    Loesung_sortiert{wert}=M(zeilen,:);
end


An deine Lösungen kommst du jetzt mit:
Loesung_sortiert{1}
Loesung_sortiert{2}
...
Private Nachricht senden Benutzer-Profile anzeigen
 
Maik aus Magdeburg

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2012, 09:51     Titel:
  Antworten mit Zitat      
Vielen Dank dmjr,

so ist die Sortierung wesentlich schneller als vorher, da ich auch einige Arbeitsschritte spare.

Wie ist das dann jetzt beim plotten. Muss ich die einzelnen Zellen jetzt wieder in Matrizzen umwandeln oder geht das auch so. Mein Code den ich hier aus dem Forum für mich umgeschrieben habe gibt mir nur eine Ebene einer 3D-punktwolke aus.
Code:


farbe=hsv(20);    

for It=1:20
    zeilen=find(Loesungs(:,4)==It); %identifiziere alle Zeilen die in der 4. Spalte "wert" stehen haben
    Loesungsort{It}=Loesungs(zeilen,:);
end
hold on

for wert = 1:20
    plot3(Loesungsort{wert}(:,1),Loesungsort{wert}(:,2),Loesungsort{wert}(:,3),'.','color',farbe(wert,:)); % plotten der Datenreihen
end
 
 
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.