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

Persistent

 

persistent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2009, 10:33     Titel: Persistent
  Antworten mit Zitat      
Hallo Liebe MAtlab User,

habe folgendes zu bewältigen,
möchte mit dem Befehl Persistent arbeiten, die variable sollte nach mehreren Aufrufen der funktion immer noch gespeichert sein...
wie kann ich es denn prüfen das die variablen gespeichert sind?
Wenn ich Vektoren an ein Array übergebe, indiziert matlab es dann selber?
Ich brauche sozusagen ein Schieberegister...hat jemand schon sowas in der Art gemacht?

Danke schon mal im voraus und einen schönen sonnigen Tag:-)


persistent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2009, 11:37     Titel: speicher problem
  Antworten mit Zitat      
Code:
function irgendwelcher_name(u)
persistent m; //
persistent z;
if isempty(m)
m=zeros(256,10);//erstelle leere Matrix
end
if isempty(z)
    z=0;// Zähler
end
    z=z+1;
    m(:,z)=u ; /Füge Vekror spaltenweise in das Array, bzw möchte:-(
   
end
 


Hab es mal selber versucht, so mein Problem ist jetzt eigentlich beim verlassen der Funktion müsste er doch die Werte abspeichern,da ich persistent benutzt habe...aber er macht das nicht...bestimmt habe ich eine kleine sache übersehen...
Das Programm soll folgendes machen,mein Eingang u ein 256x1 Vektor, soll in ein Array reingeschrieben werden, ich habe eine peristente Variable z erstellt die den Zähler speichern soll...
jemand eine idee woran es liegen könnte??

persist.mdl
 Beschreibung:

Download
 Dateiname:  persist.mdl
 Dateigröße:  23.89 KB
 Heruntergeladen:  548 mal
 
peristent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2009, 12:20     Titel:
  Antworten mit Zitat      
habe das problem mal eingegrenzt,
bei der ersten isempty Abfrage überspringt er die 2 Abfrage...verstehe nicht warum??
nobody knows this problem???
 
peristent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2009, 12:27     Titel:
  Antworten mit Zitat      
[/code] function irgendwelcher_name

persistent z;


if isempty(z)
z=0;
end
z=z+1;


end
Code:


So klappt es hervoragend aber warum nicht wenn ich 2 Peristente Variablen definiere???
 
persistent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2009, 10:48     Titel:
  Antworten mit Zitat      
Code:
function eingang(input)
persistent index;
persistent vektor;

if isempty(index)
     index = 1;
end

if isempty(vektor)
     vektor= zeros(1,10);
end

vektor(1,index) = input; */füge Eingangswert Vektor zu...

index = index + 1; /Zähler erhöht

if(index-1 == numel(vektor)) */falls Der Index 10 ereicht hat wird er mit der Anzahl der Elemente des Vektor veglichen der auch widerum 10 hat...
     index = 1;
end
 


So hab jetzt mal bischen ausprobiert...also jetzt speichert er den Index und den Vektor...schon mal ein Teilerfolg:-)
Aber ich möchte das im Array gepeichert haben...Wie indiziere ich das Array...beim Vektor hat es hervoragend geklappt, aber bei dem Array will er die Werte obwohl ich persistent benutze nicht speichern...warum???
 
persistent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2009, 11:01     Titel:
  Antworten mit Zitat      
Code:

function eingang(input)
persistent index;
persistent array;

if isempty(index)
     index = 1;
end

if isempty(array)
     array= zeros(256,20);
end

array(:,index) = input;    */Array füllen

index = index + 1;


if(index-1 == numel(array)) */ist wahrscheinlich falsch die zeile
     index = 1;
end


das ist meine Version mit dem Array, input ist ein 256x1 Vektor der spaltenweise mit dem Index eingefügt werden soll...verstehe nicht warum er ein Vektor füllt, aber nicht ein Array...oder mache ich was falsch mit der indezierung??
hoffe jemand kann mir den entscheidenen tip geben...
möchte kein alleinunterhalter mehr sein Smile
 
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.