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

Double Daten in Schleife setzen zum speichern in Text Datei

 

Baltam
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2010, 00:28     Titel: Double Daten in Schleife setzen zum speichern in Text Datei
  Antworten mit Zitat      
Hallo Leute,

ich benutze eine DAQ Karte um analoge Signale in Dateien zu speichern jedes mal ein Trigger stattfindet (jede 50 ms) dafür benutze ich externes TTL Signal als Trigger. Nach jedem Trigger werden 2000 Werte gesammelt. Die sollten unterschiedlich sein da das Sensor schickt kontinuierlich neue Daten innerhalb diese Zeitraum 50 ms.

In eine GUI mit GUIDE, ein Edit Text box soll der Anzahl der Messungen festlegen , was bedeutet dass die Schleife soll nach getippte Zahl durchlaufen, nach dem Bestätigen mit einem Push Button.

Das Problem ist das diese Werte gleich sind, also mehrere Duplikte von den gleichen 2000 Werte


So sieht also die Schleife aus:

Code:

function triggerendcallback(ai,event)

data = get(ai,'UserData');  
if(data.curtrigger <= data.maxtriggers)
   c = getdata(ai);
   data.c{data.curtrigger} = c;
   if(data.curtrigger == data.maxtriggers)
      for i=1:data.maxtriggers
          disp(i)
         csvwrite(sprintf('Messung %d.txt',i),c);  
      end
   end
   data.curtrigger = data.curtrigger + 1;
 
end
set(ai,'UserData',data)
 


dazu ein Teil von der Einstellungen :
Code:


set(ai,'SamplesAcquiredFcn',@triggerendcallback);
set(ai,'SamplesAcquiredFcnCount', handles.samplesPerTrigger);

data.storedFFTsIndex = 1;
data.plotSurf        = 0;
data.ai              = ai;
data.getdata         = [d zeit];
data.daqfft          = [f mag];
data.handle          = [];
data.figureHandles   = handles;
data.view            = [103 10];
data.rotateStep      = 4;
data.counter         = 0;

data.curtrigger      = 1;            %%%%%<-----------------
data.maxtriggers     = 0;          %%%%%<-----------------

set(data.ai, 'UserData', data)
 


Push Button callback :
Code:

function pbStore_Callback(hObject, eventdata, handles)
data = get(handles.ai,'UserData');
data.curtrigger = 1;
data.maxtriggers = str2num(get(handles.etxtstore,'String'));
set(handles.ai,'UserData',data);
 


Die Einstellungen für das Ojekt ai sind zu lang um die hier zu posten. Falls jemand helfen kann und die einsehen möchte kann ich die als Datei posten.


kann mir jemand bitte helfen ??

Ich danke im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


Baltam
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2010, 01:05     Titel:
  Antworten mit Zitat      
Hat sich erledigt. war doch richtig ich sollte nur ein pause function zufügen.

aber da besteht noch einen Problem, die Daten werden ja gleichzeitig geplotet, wenn die beim speichern sind, das ganze dargestellte Signal bewegt sich nicht mehr. Ich weiss dass es CPU abhängig aber gibt es irgendwie Verbessungsvorschläge damit es ein bisschen schneller wird ? bzw. Bietet MATLAB support Code Performance für Kunden ??
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.09.2010, 11:04     Titel:
  Antworten mit Zitat      
Hallo,

es kann auch sein, dass der Graph nur nicht aktualisiert wird. Dazu
Code:

einbauen, wenn aktualisiert werden soll.

Mathworks (so heißt die Firma hinter MATLAB) Support für kommerzielle Lizenzen:
+49-89-45235-6700, Option 4.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Baltam
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2010, 14:40     Titel:
  Antworten mit Zitat      
Vielen Dank für die Hilfe, drawnow steht bei mir schon woanders im Code, hat leider nicht viel geändert,dazu habe ich :
Code:


zugefügt, sieht ein bisschen besser aus.

Eine weitere Frage : da bei mir wie Sie sehen die Daten werden in text Datein gespeichert, stattdessen möchte ich die lieber als MAT-Files direkt nach Tastendruck in Workspace speichern. Da ich duzende von Dateien erzeugen muss um die 50 Stück, wird es umständlich jede Datei mit rechte Maustaste und Import Data usw. zu bearbeiten.


danke im Voraus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.09.2010, 18:45     Titel:
  Antworten mit Zitat      
Hallo,

man kann Daten auch automatisiert importieren.
Für .mat-Dateien: load
Für Textdateien: fopen/textscan/fclose

Grüße,
Harald
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 - 2025 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.