Danke für die Hinweise. Ich werde mal etwas rumprobieren und versuchen mit der Hilfe zu Recht zu kommen.
Hab allerdings noch eine Frage:
Ist cumtrapz der richtige Befehl wenn ich über die Messergebnisse integrieren möchte?
Ich hab jetzt y=cumtrapz(n{1,1} (:,3)) als Befehl für eine Messreihe eingegeben. Dieser Befehl bedeutet doch, das er die Messreihe aus der ersten Zelle nimmt und dort die dritte Spalte integriert.
Aber wie macht er das? Dadurch das es recht viele Messergebnisse sind nimmt er dann einfacch die Messwerte und addiert sie auf? Quasi so, als würde man die Fläche unterm Graphen in Rechtecke teilen und diese aufaddieren.
Ich glaube nämlich langsam das mein Ergebnis falsch ist... Braucht er nicht quasi auch ne x-Achse? Um zu wissen von wo bis wo er integriert bzw. wie breit die einzelnen Rechtecke sind die er da aufaddiert?
Entschuldigt wenn ich so umständlich schreibe, ich hoffe das ihr mich jedoch versteht.
Der nächste Schritt wäre dann für mich den Mittelwert über die Messreihe zu bilden:
Ich hab 50 Messreihen. Zu jeder Messreihe gehören 10.000 Werte.
Du könntest MEAN verwenden, wenn die Daten als Array vorlägen. Wenn ich es richtig verstehe, sind die einzelnen Messreihen aber in Cells gespeichert. Dann könntest Du sie ja in ein Array kopieren:
Dies nimmt allerdings eine gewisse Zeit in Anspruch... gibt es da ne schnellere Möglichkeit?
Zweites, immer noch aktuelles Problem, sind die Mittelwerte über die Messungen.
Dies habe ich so gelöst:
Code:
for i=1:1:10000 for ii=1:1:3
Mittelwertdruck(i,ii)=n{1,ii}(i,3)
ii+1 end
Mittelwertdruck(i,55)=mean(Mittelwertdruck(i,:))
i+1 end for i=1:1:10000 for ii=1:1:3
Mittelwertspannung(i,ii)=n{1,ii}(i,2)
ii+1 end
Mittelwertspannung(i,55)=mean(Mittelwertspannung(i,:))
i+1 end
Damit erzeuge ich mir neue Matrizen in denen die Werte abgespeichert werden und ich dann den Mittelwert der einzelnen Werte über die Messreihen erzeugen kann.
Dies dauert allerdings bei der Datenmenge einfach zu lange und ich breche ab. Das es funktioniert, weiß ich, denn ich habe es mit einer geringeren Datenmenge probiert. Auch hier suche ich eine Alternative....
Bitte schau Dir nochmal an, wie man FOR-Schleifen programmiert. Das "ii+1" und "i+1" ist hier reine Zeitverschwendung. Ausserdem shcreibst Du aller Ergebnisse ins Command-Window, was auch eine Menge Zeit vergeudet. Matlab läuft deutlich schneller, wenn Du die Zeilen mit einem Semikolon beendest und die Zwischenergebnisse nicht geschrieben werden.
Das MEAN Kommando kannst Du auch auf eine Matrix anwenden, statt es in jeder Iteration auf einen Vektor anzuwenden. Das geht deutlich schneller.
Bitte versuche das erstmal und poste dann den überarbeiteten Code nochmal.
Da sind die Laufvariablen der Schleifen wieder mächtig groß, d.h. es dauert wieder sehr lange die Mittelwerte zu bilden. Irgendjemand ne Alternative oder Tipp wie es schneller geht?
edit by denny: Bitte Code-Umgebung verwenden, Danke!
Array=cat(3,n{:});
for i=1:1:10001
y(i,1)=n{1,1}(i,1);
end for i=1:1:10001 for ii=1:1:51
x(ii,1)=mean(Array(i,2,ii));
end
y(i,2)=mean(x(:,1));
end for i=1:1:10001 for ii=1:1:51
x(ii,1)=mean(Array(i,3,ii));
end
y(i,3)=mean(x(:,1));
end clear x
clc % Input of force balance Output and transfer function.
case1 = input('Input StepLoad from Force Balance : ','s');
case2 = input('Input StepLoad from Force Balance : ','s');
known_output = strcat(' ',case1,'.xlsx');
response=strcat(' ',case2,'.csv');
y = xlsread(known_output,'A3325:B10014');
g= xlsread(response,'A2105:B8794'); % for g2
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.