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

Startwert für Variable definieren

 

christoph_gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2009, 15:56     Titel: Startwert für Variable definieren
  Antworten mit Zitat      
Hallo,

ich bin dabei in Simulink eine Embedded Matlab funktion einzubinden.
Ich benutz verschiedene Variabeln in dieser funktion. wie bekomme ich es jetzt aber hin, dass ich einer variablen einen Startwert (z.b. 0) gebe, der beim ersten aufruf gilt. beim nächsten aufruf soll der vom ersten aufruf geänderte wert verwendet werden. (es geht um einen zähler wie oft die funktion aufgerufen wurde).

wäre nett wenn mir jemand antworten könnte.

viele grüße
christoph


Volker81k
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 12.05.09
Wohnort: Zürich
Version: R2006a
     Beitrag Verfasst am: 07.10.2009, 13:10     Titel:
  Antworten mit Zitat      
Hallo Christoph,

Damit eine Embedded Matlab Function eine Variable dauerhaft speichert, muss sie als persistent deklariert werden. Um sie dann zu initialisieren , wird der Befehl isempty() benutzt.

Eine genau Beschreibung dazu findest du in der Hilfe unter "Declaring Persistent Variables".

Viele Grüsse
Volker
Private Nachricht senden Benutzer-Profile anzeigen
 
christoph_gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2009, 07:52     Titel:
  Antworten mit Zitat      
Hallo Volker,

danke für die schnelle, super Antwort. Es hat funktioniert.

Noch eine frage hätte ich aber.

Ich hab einen Regelkreis aufgebaut mit einer embedded Matlab funktion.
Ich möchte nun den Ausgang Rückkoppeln. Dazu sollte der Ausgan BEVOR die funktion aufgerufen wurde bereits initialisiert sein. wie kann ich so etwas machen?

viele Grüße und nochmals danke

Christoph
 
Volker81k
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 12.05.09
Wohnort: Zürich
Version: R2006a
     Beitrag Verfasst am: 12.10.2009, 08:09     Titel:
  Antworten mit Zitat      
Hallo Christoph,

eine Funktion, die den Ausgang vor dem ersten Aufruf setzt ist mir nicht bekannt. Wenn du in dem Embedded Matlab Fenster den "Ports and Data Manager" öffnest, steht zwar unter dem Reiter "Value Attributes" das Feld "Initial value", jedoch weiss ich nicht, wodurch es aktiviert wird.

Eine Initialisierung über den isempty() Befehl funktioniert nicht?
Code:

if isempty(Variable)
    Variable = 10;
end
 


Viele Grüsse
Volker
Private Nachricht senden Benutzer-Profile anzeigen
 
christoph_gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2009, 08:24     Titel:
  Antworten mit Zitat      
Doch inzwischen hat es funktioniert.
Danke dir.

Noch eine Frage wegen der Embedded Matlab function.
Ist diese Zeitkontinuierlich oder diskret? ich wollte nämlich einen Diskreten Regler aufbauen und mit einer kontinuierlichen Strecke kombinieren. siehe Beitrag:
http://www.gomatlab.de/viewtopic,p,30627.html#30627

Ich habe irgendwie noch ein Problem mit der Diskretisierung

viele Grüße und vielen Dank

Christoph
 
fekal
Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 10.08.2011, 18:56     Titel:
  Antworten mit Zitat      
Ich würd mal sagen ALLES, was mit einem Rechner erzeugt bzw. bearbeitet wird ist diskret. Allein durch die Taktung deines CPUs kann es nicht mehr kontinuierlich sein.


Besten Gruß fekal
Private Nachricht senden Benutzer-Profile anzeigen
 
aziz
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 25.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2012, 08:52     Titel:
  Antworten mit Zitat      
hallo alle zusammen,

ich muss ein matlabcode schreiben wo ich einpaar feste buchstaben brauche,und ich möchte sie am Anfang deklarieren.
wie kann ich folgende variable deklarieren:

%Dateiname_alt
%Dateiname_neu
%Laufleistung
%diff_Leistung
%Datum_Start
%Datum_Ende

Ziel:ein mat-file öffnen und umbenennen(nicht manuell)

danke
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.