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

Auslesen aus Schnittstelle & dynamisches speichern in Ma

 

greenhorn@matlab
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 25.08.10
Wohnort: Schweiz
Version: ---
     Beitrag Verfasst am: 25.08.2010, 11:03     Titel: Auslesen aus Schnittstelle & dynamisches speichern in Ma
  Antworten mit Zitat      
Hallo miteinander

Ich bin die letzten Wochen damit beschäftigt gewesen ein Programm zu entwerfen, welches simultan Daten aus meinem Gerät ausliest und anschliessend abgesichert (hehrere Runs hintereinander). Soweit so gut.

Da das Gerät etwas älter ist (jhrg. 1987) ist die Datenausgabe über den RS233 nicht immer einwandfrei, d.H: Ab und zu wird der Wert nicht übergeben. der Wert besteht aus einem String mit ca 19-20 Zeichen und wird in einen X-Wert (point) und einen Y-Wert (intens) aufgespalten. Nun sollen jedoch diese Werte sobald sie ausgelesen wurden in eine Matrix eingefügt werden und zwar so, das Punkt 1 in 1,1 gespeichert wird und die dazugehörige Intens in 1,2. Wenn nun ein Wert "vergessen" wird sollte dort -1 stehen (so dass ich erkenne welcher wert übersprungen worden ist). Sollte der Punkt 10 ausgelassen werden, soll der nächste Punkt bei Linie 11 weiter gehen. Für jeden Run sollen die X und Y Wert nebeneinander in Spalten eingetragen werden. So dass ich bei 10 Runs 20 Spalten habe.

Hier noch mein Code:
Code:
%mein Programm
%program reads out the serial port of the
clear all
s = start_serial;
wait_response (s, 2)
datapoints=200; % number of datapoints in the ms spectrum
cycles=2;       % number of repetive cycles
resolution=4;   % number of datapoints for each amu

mass_range_min=input('kleinste zu messende Masse:')
mass_range_max=input('grˆsste zu messende Masse:')

figure(1)
hold off
plot(0,0)
hold on

point=0;
miss=0;
while point < datapoints
        out = fscanf(s)
        test=length(out);
        if test<19
            miss=miss+1;
        else
            point=str2num(out((length(out)-15):(length(out)-12)));;
        end
       
end

m=zeros(datapoints,[2*cycles])
m(m==0)=-1

for j=1:cycles
    figure(1)
    hold off
    plot(0,0)
    hold on
    for i=1:datapoints
        out = fscanf(s);
        if length(out)>18
            point(i) = str2num(out((length(out)-15):(length(out)-12)));
            intens(i) = str2num(out((length(out)-10):length(out)));
        end
        if i > 1
            if point(i-1) < datapoints
               plot([point(i-1)/resolution,point(i)/resolution],[intens(i-1),intens(i)],'r')
            end
        end
        drawnow
    end
    xlabel('m/z')
    ylabel('intensity / a.u.')
    title('plot generated from quadruvac pga 100')
    hold off
    figure(2)
    specx(:,j)=point';
    specy(:,j)=intens';
    plot(specx(:,j),specy(:,j))
    xlabel('m/z')
    ylabel('intensity / a.u.')
    title('plot generated from quadruvac pga 100')
end
stop_serial (s)
 


Ist ein Haufen zu lesen, aber vielleicht nimmt sich hier jemand die zeit & lust dafür...

Danke schon mal im voraus
_________________

Die Anzahl unserer Neider bestätigt unsere Fähigkeiten.
Oscar Wilde, 16.10.1854 - 30.11.190
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.