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

Subsystem-Namen filtern

 

RamboDrei

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2017, 13:19     Titel: Subsystem-Namen filtern
  Antworten mit Zitat      
Hallo liebe Matlab-Gemeinde,
ich habe ein Problem, bei dem ihr mir hoffentlich helfen könnt oder wir zusammen brainstormen können.

Ich habe ein Script geschrieben, dass für ein Simulink-Modell alle Subsysteme in ein Array gibt. Der User gibt vorher einen Präfix ein. Subsysteme, die diesen Präfix enthalten, sollen in einer Liste ausgegeben werden. Ich habe zwar einen "Filter" geschrieben, der so aussieht:
Code:
% Filtere nach Subsystemen, die den Präfix enthalten %
zaehler=0; % zaehler für Index im Structure-Array wird initalisiert
for n=1:length(subsystem)
if ~isempty(findstr(subsystem(n).name,praefix)) % falls praefix irgendwo im Subsystem vorhanden ist:
subsystemMitpraefix(1+zaehler).name=subsystem(n).name; % gebe Subsystemname in neuen Array ab, das nur Subsysteme mit Präfix speichert
zaehler=zaehler+1; % zähle Indexeintrag hoch
else
% ignoriere Subsystem ohne Präfix
end
end
% Indexeintragzähler ist nötig, da sonst auch leere Elemente entstehen, mit
% denen man schwerer arbeiten kann

Was jetzt leider zusätzlich passiert, ist, dass Subsysteme von Subsystemen, die den Präfix enthalten, auch in das subsystemMitpraefix-Array gespeichert werden. Ich kann Subsysteme bisher leider nur in ihrer Gesamtheit angeben, also so: "Modell/ABC_Subsystem/Subsystem1/Subsystem2/ABC_Subsystem3". Bei diesem Subsystemen möchte ich aber eigtl nur "Modell/ABC_Subsystem" und "Modell/ABC_Subsystem/Subsystem1/Subsystem2/ABC_Subsystem3" in der Liste haben. Bisher speichert er aber jedes Subsystem ab. Blöd!
Habt ihr vielleicht Ideen, wie man dieses Problem lösen kann?


RamboDrei

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2017, 13:43     Titel:
  Antworten mit Zitat      
Ok, sorry, dass ich diesen Thread aufgemacht habe! Habe nach kurzer Trinkpause die Lösung für das Problem selber gefunden. Falls sie jemand in Zukunft brauchen könnte:
Code:

% Filtere nach Subsystemen, die den Präfix enthalten %
zaehler=0; % zaehler für Index im Structure-Array wird initalisiert
for n=1:length(subsystem)
z=findstr(subsystem(n).name,'/'); % Erzeuge Vektor, der die "Abtrennungen" findet
if ~isempty(findstr(subsystem(n).name(max(z)+1:end),praefix)) % Überprüfe, ob im tatsächlichen Subsystemnamen (von letztem "/" bis Ende) der Präfix vorkommt
subsystemMitpraefix(1+zaehler).name=subsystem(n).name; % gebe Subsystemname in neuen Array ab, das nur Subsysteme mit Präfix speichert
zaehler=zaehler+1; % zähle Indexeintrag hoch
else
% ignoriere Subsystem ohne Präfix
end
end
% Indexeintragzähler ist nötig, da sonst auch leere Elemente entstehen, mit
% denen man schwerer arbeiten kann
 
RamboDrei

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2017, 13:44     Titel:
  Antworten mit Zitat      
Und nochmal sorry. Habe vergessen, den Status auf beantwortet zu stellen.

Ich wünsche euch allen noch einen schönen Tag!
 
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 - 2024 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.