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

Structs unterschiedlicher Länge zusammenfügen

 

ansc
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 05.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2015, 14:40     Titel: Structs unterschiedlicher Länge zusammenfügen
  Antworten mit Zitat      
Hallo zusammen,

ich habe da mal wieder ein kleines Problem.
Ich habe mehrere structs unterschiedlicher Länge die ich gerne zusammenfügen möchte und zwar folgendermaßen.
In der ersten Spalte jedes structs stehen Zahlen, diese sollen miteinander verglichen werden und wenn die Zahlen in zwei structs vorkommen, dann sollen die Zelleninhalte der dazugehörigen Zeilen in den anderen Spalten untereinander geschrieben werden. Um zu verdeutlichen was ich meine habe ich mal ein Besipiel angehängt. 'SW_test' und 'SE_test' sind hierbei die ursprünglichen structs und 'neu' das was dabei herauskommen sollte.

Ich habe es mit diesem Code versucht
Code:
for k = 1:length(SE_test)

if SE_test(k).nT == SW_test(k).nT
    neu(k).nT = [SE_test(k).nT];
    neu(k).a = vertcat(SE_test(k).a,SW_test(k).a);
    neu(k).e = vertcat(SE_test(k).e,SW_test(k).e);
    neu(k).Vr = vertcat(SE_test(k).Vr,SW_test(k).Vr);
end
end
 


habe dann aber zwei Probleme dabei herausgefunden. Erstens ist das Problem bei der for Schleife, das die structs nicht die gleiche Länge haben was somit logischerweise zu der Fehlermeldung 'Index exceeds matrix dimensions.' führt. Zweitens werden mit diesem Code immer nur die gleichen Zeilen bei der if Bedingung berücksichtigt, habe ich aber beispielsweise in der 1.Zeile des einen structs und der 3.Zeile des Zweiten in der nT Spalte die gleiche Zahl stehen wird dies nicht berücksichtigt, was aber wichtig wäre. Ich habe das Beispiel so konzipiert, dass genau dieses Problem auftaucht und wie ich mir die Lösung vorstelle.

Vielleicht hat ja jemand von euch eine Anregung für mich, auf jedenfall schonmal Danke an die, die sich hiermit beschäftigen.

Falls die Erklärung zu undeutlich ist, was mir leider immer wieder passiert, bin ich gerne bereit nocheinmal zu versuchen es besser zu erklären.

neu.mat
 Beschreibung:

Download
 Dateiname:  neu.mat
 Dateigröße:  15.59 KB
 Heruntergeladen:  327 mal
SW_test.mat
 Beschreibung:

Download
 Dateiname:  SW_test.mat
 Dateigröße:  16.92 KB
 Heruntergeladen:  318 mal
SE_test.mat
 Beschreibung:

Download
 Dateiname:  SE_test.mat
 Dateigröße:  19.61 KB
 Heruntergeladen:  284 mal
Private Nachricht senden Benutzer-Profile anzeigen


ansc
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 05.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2015, 15:52     Titel:
  Antworten mit Zitat      
Mir ist da gerade noch ein problem aufgefallen.
Die Zeile
Code:
neu(k).nT = [SE_test(k).nT];

stimmt so natürlich auch nicht, hier sollten dann die Werte stehen, die bei SW_test und SE_test vorkommen und nicht nur die aus SE_test. Und dazu passend in den anderen Feldern (a,e,Vr) die verbundenen Werte aus SE und SW.
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.