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

Auswahl von Vektoren unterschiedlicher Länge

 

syntec
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2010, 18:22     Titel: Auswahl von Vektoren unterschiedlicher Länge
  Antworten mit Zitat      
Hallo an alle,

ich kämpfe schon seit längeren an dem Problem, einen Vektor aus verschiedenen Vektoren (mehrere Inputs) unterschiedlicher Längen unter gegebenen Bedinungen auszuwählen. Am Ausgang will ich als dann nur ein Output-Vektor haben mit seiner entsprechenden Länge.

Ein normalen Multi-Switch-Block kann ich leider nicht verwenden, da er an den Eingängen Vektoren mit gleicher Länge benötigt. Diese kann ich zwar mit Mux auf eine Länge bringen, muss sie dann aber irgendwie wieder auf die richtige Ausgangslänge demuxen.

Ich habe schon verschiedene Varianten durchprobiert, auch mit S-Function, aber komme immer auf das selbe Problem, dass Simulink meckert, weil es die Länge vom Output vorgegeben haben möchte.
Das Modell soll später in C durch RTW generiert werden.

Habt ihr da vielleicht eine Idee oder Ratschläge?
Private Nachricht senden Benutzer-Profile anzeigen


syntec
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2010, 13:51     Titel:
  Antworten mit Zitat      
Ich habe jetzt eine Lösung mit einer S-Funtion gefunden, bei dem ich den Output dynimsch machen kann.

Code:
if (!ssSetNumInputPorts(S, 2)) return;
    ssSetInputPortDirectFeedThrough(S, 0, 0);
    ssSetInputPortDirectFeedThrough(S, 0, 1);
    ssSetInputPortWidth(S, 1, 1);

    if (!ssSetNumOutputPorts(S, 1)) return;

    ssSetInputPortWidth(S, 0, DYNAMICALLY_SIZED);
    ssSetOutputPortWidth(S, 0, DYNAMICALLY_SIZED);

    ssSetNumSampleTimes(S, 1);
    ....

Das funktioniert auch ganz gut.
Nur würde ich gern den Wert, der variabel ist, der Vektorlänge vorgeben können, also während der Laufzeit im Programmcode ändern... nach der obigen Initialisierung.


Gibt es da eine Möglichkeit?
Private Nachricht senden Benutzer-Profile anzeigen
 
Lord nibbler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2010, 14:08     Titel:
  Antworten mit Zitat      
Die Signale in Simulink können in ihren Eigenschaften während der Laufzeit nicht verändert werden. Man kann sie nur bei der Initalisierung der Simulation dynamisch festlegen.

Gruß Lord nibbler
 
syntec
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 19.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2010, 14:27     Titel:
  Antworten mit Zitat      
danke für deine Antwort.
Also habe ich keine Möglichkeit den Wert einzulesen und dann die S-Function zu initialisieren?!
Gibt es dann eventuell eine andere Möglichkeit?
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 - 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.