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

kontinuierliches Einlesen

 

upt0zer0
Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2012, 09:20     Titel: kontinuierliches Einlesen
  Antworten mit Zitat      
Hallo,

folgendes Problem. Ich habe 100 Zahlen. Will sie nacheinander einlesen und dann alle zusammen ausgeben.

Hab dazu eine Funktion geschrieben

function output = AX(input)

...

Hab mir jetzt gedacht ich schreib jedes Element nacheinander in einen Array. Problem ist, dass ich ja immer nur ein Element einlese, das verarbeitet und dann ausgegeben wird. Wie kann ich mehrere Elemente nacheinander einlesen?
Private Nachricht senden Benutzer-Profile anzeigen


Goofy9020
Forum-Century

Forum-Century


Beiträge: 164
Anmeldedatum: 10.08.11
Wohnort: ---
Version: 2009a, 2010b
     Beitrag Verfasst am: 02.08.2012, 12:02     Titel:
  Antworten mit Zitat      
mittels Schleife?

for, while
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2012, 19:14     Titel:
  Antworten mit Zitat      
For Schleife hab ich, aber jedesmal wenn ein neues Element ankommt fängt die Funktion von vorne an, kp wieso....
Private Nachricht senden Benutzer-Profile anzeigen
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2012, 20:49     Titel:
  Antworten mit Zitat      
Hallo upt0zer0,

der Anteil der Hellseher im Forum beträgt leider nur 0,38%.
Ohne zu wissen, was input ist, wie die function AX aussieht, was Du als
output erwartest und was tatsächlich rauskommt, können wir Dir
nicht helfen.

Grüße
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
Goofy9020
Forum-Century

Forum-Century


Beiträge: 164
Anmeldedatum: 10.08.11
Wohnort: ---
Version: 2009a, 2010b
     Beitrag Verfasst am: 03.08.2012, 06:16     Titel:
  Antworten mit Zitat      
Wie Sirius3 gesagt hat, ohne Codebeispiel wird es etwas schwer dir zu helfen.

Ich denke mal du deklarierst deine Variable in der Schleife bei jedem Durchlauf neu daher wird der alte Wert einfach immer gelöscht aber wie gesagt ohne Code sind dies eher Vermutungen.
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2012, 08:04     Titel:
  Antworten mit Zitat      
Ok hier mal was inkl. Erklärung

Code:

function output = ax(input)


array=size(1,64)

for n=1:64
        array(1,n) = input;
end

output = array;

end


Das ding erstellt mit ein Array mit einer Zeile und 64 Spalten und läd dann mit Hilfe der for-Schleife jeden neuen Input in eine Spalte. Also den ersten in array(1,1), den zweiten array(1,2),... am Ende gibt dann der output das Array aus.
Problem is jetzt das die Zahlen die ins Array geschrieben werden sollen von einem "Random Integer Generator" von Simulink kommen. Und jedesmal wenn da eine neue Zahl ankommt, läd er das Array von vorne. A

Das Fehler drin sind weiß ich selbst, z.B. funktioniert array(1,n) = input nicht... aber mir ist nicht bewusst, wie ich sonst Inputwerte in einen Array schreiben soll.

Ich denke die Grundidee ist erkennbar, da es sich im Embedded Matlab handelt, geht auch nciht jede Funktion...
Private Nachricht senden Benutzer-Profile anzeigen
 
Goofy9020
Forum-Century

Forum-Century


Beiträge: 164
Anmeldedatum: 10.08.11
Wohnort: ---
Version: 2009a, 2010b
     Beitrag Verfasst am: 03.08.2012, 08:15     Titel:
  Antworten mit Zitat      
Kenn mich jetzt nicht so mit simulink aus aber rufst du dort beim Generator immer die Funktion "ax(input) " auf?
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.08.2012, 08:29     Titel:
  Antworten mit Zitat      
Input is einfach der Eingang vom Matlab Block, wo immer wieder neue Integer ankommen un dann in den Input reingehn, wo sie verarbeitet werden soll.
Private Nachricht senden Benutzer-Profile anzeigen
 
cybbi
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 84
Anmeldedatum: 23.08.11
Wohnort: ---
Version: Alle
     Beitrag Verfasst am: 03.08.2012, 09:21     Titel:
  Antworten mit Zitat      
Ein Matlab Function Block wird, genauso wie alle anderen Simulink Blöcke auch, zu jedem Simulationszeitschritt einmal berechnet. Deswegen fängt der natürlich immer wieder von vorne an.

Ich denke mal, dass du am Ende der Simulation eine Variable haben möchtest, die die Werte gespeichert hat. Aber... ganz blöd gefragt.. warum nimmst du dafür keinen "To Workspace" Block?

Vielleicht solltest du mal das Simulink Modell dazu anhängen und genau beschreiben, was du möchtest. Ansonsten wäre die Frage natürlich im Simulink-Forum besser aufgehoben gewesen Smile

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2012, 10:33     Titel:
  Antworten mit Zitat      
Problem ist, das ich dann wieder net weiß, wie ichs wieder einlesen soll
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.08.2012, 10:45     Titel:
  Antworten mit Zitat      
Teste mal, ob der array mit

Code:


nicht jedes mal wieder neu angelegt wird und somit die vorherigen Inputs weg sind.

Zitat:

Problem ist, das ich dann wieder net weiß, wie ichs wieder einlesen soll


Was ist damit gemeint? Es gibt doch den simin Block oder auch Constant Block, wenn es nur ein Array ist.

Edit: Ein Buffer, wie schon in deinem anderen Thread erwähnt, ist hierfür aber sicherlich die bessere Wahl.
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.