Verfasst am: 29.05.2017, 13:57
Titel: Mehrere speicherung von Variablen möglich in if schleife ?
Guten Tag zusammen,
ich habe folgendes Problem. Ich habe eine if schleife in der eine Spannung mit 850 perioden durchlaufen werden soll, die perioden soll aber so verlaufen das immer nach 50 Perioden eine speicherung der Daten erfolgt und dann weitere 50 Perioden gezählt werden, diese sollen dann wieder gespeichert werden und so weiter. Mit den Perioden wurden der mean sowie Max und Min werte berechnet.
MEin Problem ist aber das MAtlab immer nur eine einzige Datei abspeichert oO Warum ist das so oder wo liegt mein Fehler, er soll nach jeder 50 periode den Satz nehmen und abspeichern, damit man sich zu allen 50 Perioden jeweils die werte angucken kann .
% calculation of time for one periode [ms].
%---------------------------------------------
t=(0:samples-1)./samples ./50 .*1e3;
%------------------------------------
l=1;
natürlich sind nach der if anweisungen auch jeweils immer die "end" Zustände vorhanden. diese habe ich jetzt mal hier raus gelasssen. MEine frage stellt sich halt nur, warum matlab nicht nach jeder Anweisung ne speicherung macht? In diesem Fall hat er kurioserweise nur "filename2" abgespeichert , filename1 oder filename3 komischweise nicht oO. wo liegt mein Fehler ?
erst mal vielen vielen Dank für die Antwort und der mühe. Leider klappt es immer noch nicht 100 %. Ich bin aber auch nicht wirklich so Fit was die Syntax und Programmierung angeht. ist den meine umsetzung so erst mal richtig. Im moment speichert er garnichts
Code:
samples = 2^7; %Anzahl meiner Abtastungen
Perioden = 850; % Anzahl Perioden
N = 50; % 50 Perioden
Einschwing = 51; % Abschluss Einschwingvorgang
filename = 'periode';
Test2 = 'periode2';
Test3 = 'periode3';
Test4 = 'periode4';
Test5 = 'periode5';
% calculation of time for one periode [ms].
%---------------------------------------------
t=(0:samples-1)./samples ./50 .*1e3;
%------------------------------------
l=1;
Hallo, sorry,
dass ich erst heute antworte, bin selten hier
kannst du vielleicht erklären, was k - l*N == 0 macht ?
ich glaube, das Ganze könnte man durch Modulo einstampfen und man braucht auch kein switch mehr
Code:
samples = 2^7; % Anzahl meiner Abtastungen
Perioden = 850; % Anzahl Perioden
N = 50; % 50 Perioden
Einschwing = 51; % Abschluss Einschwingvorgang
filename = 'periode';
% calculation of time for one periode [ms]. % ---------------------------------------------
t = (0:samples-1)./samples ./50 .*1e3;
% ------------------------------------
l = 1;
[EOF, In, i] = ReadMeasurementsFunction(FileName);
M = In(:,1:2^15/samples:end);
M(1,:) = 200.*M(1,:);
% hier Modulo verwenden und prüfen ob 50 Periode erreicht wurde: if i >= Einschwing && mod(i,N) == 1
% dann filename kann man sich auch generieren lassen
file_nmbr = fix(i/N);
filename2save = sprintf('%s%2d', filename, file_nmbr);
fprintf('save file %s: \n', filename2save) save(filename2save) end
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
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.