|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.05.2008, 14:54
Titel: Gleitender Mittelwert
|
|
Hallo zusammen,
ich möchte aus eine Reihe von Messdaten die Mittelwerte berechnen, da ich nicht der Matlab-Experte bin, hoffe ich auf ein wenig Hilfe.
Also folgendes, ich habe n-Datenpunkte und möchte zunächst den Mittelwert von
(n1+n2)/2, danach
(n1+n2+n3)/3....bis
(n1+...+nn)/n
Hat jemand eine Idee, wie das gehen soll? ich wäre sehr dankbar für jeden Vorschlag.
Grüsse,
Maria
|
|
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 30.05.2008, 16:23
Titel:
|
|
Hallo Maria,
mein Vorschlag:
Mittelwert ist dann ein Vektor der Länge n-1.
Herzliche Grüße
Bijick
P.S. Bin ja gespannt, ob es jemand ohne Schleife schafft...
_________________
>> why
|
|
|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.05.2008, 17:57
Titel:
|
|
Hi Bijick,
vielen Dank fuer die schnelle Antwort, es ist fast genau das was ich wollte. ich moechte es nur noch dynamisch gestalten, da ich i-Files zum auswerten habe.
Also
in der for-Schleife funktioniert aber nicht mit index{i}=2:N{i}, hast du vielleicht noch eine Idee wie das funktioniert.
Schoene Gruesse,
Maria
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 02.06.2008, 09:22
Titel:
|
|
Hallo Maria,
warum willst du denn N auch indizieren? Und warum als Cell?
Probiers mal ohne N{i} sondern nur mit N...
Falls es nicht klappt, dann müsstest du mal die Fehlermeldung posten, meist kann man daran den Fehler erkennen
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.06.2008, 10:42
Titel:
|
|
Hallo Alex,
das N moechte ich auch indizieren, da ich hunderte von Dateien auswerten muss, die verschiedene Laenge haben und fuer jede Laenge veraendert sich auch der index.
Wenn ich nur N eingebe kommt folgende Fehlermeldung raus:
??? Cell contents reference from a non-cell array object.
Wenn du eine Loesung dafuer hast, waere ich sehr dankbar!
Gruss
Maria
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 02.06.2008, 11:20
Titel:
|
|
Ich vemute mal, dass du die Datensätze nacheinander innerhalb einer for-Schleife abarbeitest!?
Brauchst du denn das N später nochmal? Wenn nicht, macht es keinen Sinn, es zu indizieren, da es ja ruhig in jedem Schleifendurchlauf überschrieben werden kann.
Mir schwebt bei deinem Problem folgende Sturktur vor:
Ich habs nicht probiert, aber prinzipiell sollte das funktionieren.
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.06.2008, 13:17
Titel:
|
|
Hallöchen,
am besten schicke ich mein ganzes Programmcode:
Es funktioniert nicht, da ich meine Datenvektoren in einem cell habe - Daten {i} und das n ist immer unterschiedlich.
Gruss,
Maria
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 02.06.2008, 17:08
Titel:
|
|
Hallo,
es liegt an der Zeile:
Gast hat Folgendes geschrieben: |
|
Da hab ich bei mir vorhin nicht dran gedacht...
Es muss natürlich so heißen:
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
lilov |
Forum-Century
|
|
Beiträge: 193
|
|
|
|
Anmeldedatum: 05.05.10
|
|
|
|
Wohnort: Bremerhaven
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.08.2010, 12:09
Titel:
|
|
Hi:)
es ist zwar 2 Jahre später aber ich bin auf diesen Thread jetzt erst gestoßen und wollte mein Senf dazu geben. Hier ist ein Algorithmus wie man sowas ohne Schleife machen kann:
Obwohl das was gewollt ist, ist gar kein gleitender Mittel. Gleitender Mittel wüdre so ähnlich aussehen:
(n1+n2)/2
(n2+n3/2
(n3+n4)/2 ...etc....
und hier ist der matlab code für sowas:
oder:
Lilov
|
|
|
Ilsa |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 13:07
Titel:
|
|
Okay, und was wäre eine kluger code für folgendes Problem?
(n1+n2)/2
(n3+n4/2
(n5+n6)/2 ...etc....
Beispiel:
gegeben=1:10,
gesucht=schlauer code mit windowsize von beispielsweise 2...
ans=1.5 3.5 5.5 7.5 9.5
Hoffe hier sieht noch mal jemand rein.
Vielen Dank und viele Grüße
Ilsa
|
|
|
Vito |
Forum-Guru
|
|
Beiträge: 315
|
|
|
|
Anmeldedatum: 02.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 13:31
Titel:
|
|
|
|
Ilsa |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 14:16
Titel:
|
|
Hallo Vito,
dankeschön soweit.
Ich kann deinen Code nicht auf beliebige Vektoren, wie z.B.
A=[2 12 22 26 0 100]
anwenden. Oder doch?
Weiterhin bin ich auf der Suche nach etwas, was daraus je nach Fenstergröße
B= 6 24 50 (bei windowsize 2)
oder
B=12 42 (bei window size 3)
macht.
Sorry wegen dieser unqualifizierten Fragerei, aber ich kenne dieses Matlab leider noch gar nicht.
|
|
|
Vito |
Forum-Guru
|
|
Beiträge: 315
|
|
|
|
Anmeldedatum: 02.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 14:26
Titel:
|
|
Hi,
damit ich dich recht verstehe. Du willst ein Code, welches dir unabhängig vom Vektor immer als Ergebnis:
Liefert. Wenn das so sein sollte, dann kannst du das doch einfach hart eintragen und keine Berechnung vornehmen. Z. B. so:
Und das mit Windowsize habe ich nicht verstanden
Gruß,
Vito
|
|
|
Ilsa |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 14:51
Titel:
|
|
Nein, so meinte ich das natürlich nicht.
Gar nicht so einfach sich klar auszudrücken. Wahrscheinlich ist es deswegen auch nicht so einfach mit dem programmieren.
Eine Reihe aus reellen Zahlen soll gemittelt werden. Allerdings soll das nicht kumulativ (für die ganze Reihe) und auch nicht gleitend passieren.
Sondern eben so
(n1+n2)/2
(n3+n4/2
(n5+n6)/2
oder so:
(n1+n2+n3)/3
(n4+n5+n6)/3
Das "Fenster" über das gemittelt werden soll wird also um die komplette Länge verschoben und soll nicht überlappend verschoben werden wie beim Gleitenden Mittel.
A = 1:10; war ein Beispiel
und 1.5 3.5 5.5 7.5 9.5 war nur für dieses Beispiel das gewünschte Resultat (bei einer Fenstergröße von 2).
|
|
|
Vito |
Forum-Guru
|
|
Beiträge: 315
|
|
|
|
Anmeldedatum: 02.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 17:26
Titel:
|
|
Hi,
meinst du sowas ein kleines Bsp:
Hinweis dein Vektor a muss immer gerade sein. Dieser Code erfüllt genau
(n1+n2)/2
(n3+n4/2
(n5+n6)/2
.
Und mit Result{1} oder Result{2} kannst du dir die Ergebnisse ausgeben lassen.
Gruß,
Vito
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|