|
|
Matrixelemente bearbeiten |
|
*maddin* |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.03.2008, 14:29
Titel: Matrixelemente bearbeiten
|
 |
|
 |
|
Hallo,
erst mal vorweg, ich bin ein zeimlicher Matlab-Newbie. Also bitte nicht schlagen, wenn mein Problem trivial oder wahnsinnig kompliziert ist...
Nun mein Problem. Ich habe eine Messreihe, die vereinfacht folgendermaßen aussieht:
1 10
2 20
5 30
9 40
9 50
9 60
10 70
Meine Ziel-Matrix sollte folgendermaßen aussehen:
1 10
2 20
3 23.333
4 26.666
5 30
6 35
7 40
8 45
9 50
10 70
Mein Ziel ist es also, diese Messreihe so zu verändern, dass ich in der ersten Spalte eine fortlaufende Nummerierung habe, also 1,2,3,4,5,6,... D.h., ich muss als erstes die doppelten, dreifachen usw Einträge der ersten Spalte entfernen und dort die entsprechenden Werte in der 2. Spalte mitteln. Als zweites muss ich dort, wo in der ersten Spalte Werte fehlen, Werte einfügen, an der entsprechenden Stelle der zweiten Spalte soll hier ein Mittelwert von vorhergehendem und darauffolgendem Wert erscheinen.
Ich hoffe, mein Problem ist klar rübergekommen.
Wie kann ich das in Matlab umsetzen?
Ich bin für jede Hilfe und Anregung sehr dankbar!
Viele Grüße
Martin
|
|
|
|
|
nschlange |

Ehrenmitglied
|
 |
Beiträge: 1.320
|
 |
|
 |
Anmeldedatum: 06.09.07
|
 |
|
 |
Wohnort: NRW
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 19.03.2008, 17:01
Titel:
|
 |
Sollte schon machbar sein.
Aber wenn in der 1. Spalte ein Wert mehrmals vorkommt,
welchen Wert aus der 2. Spalte willst Du dann nehmen?
Auch den Mittelwert aller drei?
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
*maddin* |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.03.2008, 18:30
Titel:
|
 |
Danke erst mal für die Antwort!!!
Richtig. Wenn der Wert der 1. Spalte z.B. 3 Mal vorkommt, dann den Mittelwert aus den dreien der 2. Spalte.
Aber wieso "auch den Mittelwert"?
Im dem Fall, wenn mehr als 1 Wert in der 1. Spalte fehlt, will ich nicht mit dem Mittelwert, sondern gleichmäßig "auffüllen", wie im Beispiel bei 6, 7 und 8.
Martin
|
|
|
Michaela |

Forum-Century
|
 |
Beiträge: 239
|
 |
|
 |
Anmeldedatum: 12.07.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: bis 2007b
|
 |
|
|
 |
|
Verfasst am: 19.03.2008, 21:06
Titel:
|
 |
solllte kein Problem sein. Ich skizziere dir mal auf die schnelle eine Lösung, auf Rückfrage gerne auch detaillierter.
Die erste Spalte deiner Matrix ist ja die X-Achse, und Du willst nun alle fehlenden Integer-Werte interpolieren. Dafür ist der Befehl interp1 http://www.mathworks.com/access/hel.....p;submitButtonName=Search wie geschaffen:
Du interpolierst einfach die fehlenden Stellen (ich gehe mal davon aus, Du hast als X werte von 1:N), allerdings musst Du dich noch auf eine Interpolationsmethode wie linear, cubic oder spline festlegen.
M ist die von dir angegebene Matrix
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
*maddin* |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.03.2008, 14:45
Titel:
|
 |
Danke Michaela!
Habs grad mal getestet. Für's Auffüllen der fehlenden Werte scheint es zu funktionieren. Hab aber noch ändern müssen, dass Xi ein Spaltenvektor wird, und bei Yi muss es in der Klammer Xi und nicht Yi heißen.
Sonst funktioniert's!
Aber was mach ich mit den doppelten und dreifachen Werten? Wie bekomm ich die weg?
Viele Grüße
Martin
|
|
|
Michaela |

Forum-Century
|
 |
Beiträge: 239
|
 |
|
 |
Anmeldedatum: 12.07.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: bis 2007b
|
 |
|
|
 |
|
Verfasst am: 20.03.2008, 21:28
Titel:
|
 |
MhhM... eventuell kannst Du die Daten "vorbearbeiten" und jeweils durch den Mittelwert ersetzen?
Bin mir aber nicht sicher, wie man die doppelten werte schnell findet.
Aber als workaround (evtl. etwas umständlich) könnte ich mir folgendes vorstellen: Die Daten sortieren (notfalls mit sort), falls sie noch nciht sortiert vorliegen.
Doppelte Werte erkennst Du daran, dass der Befehl
Nullen enthält (Differenz zum Nachfolger Null). Dann mit
nach den Nullen suchen und die enstprechenden Indizes raussuchen und von Hand mitteln... bzw. eine neue Matrix auffüllen...Kennt jemand eine bessere Lösung?
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
ChrisHA |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.09.2013, 15:03
Titel: Mitteln von Y-Werten gleicher X-Werte eines Vektors
|
 |
Vielleicht hilft es anderen
Have fun!
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.09.2013, 19:07
Titel:
|
 |
interp1 scheint wohl immer den letzten Y-Wert für eine X-Position zu nehmen.
|
|
|
|
|
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 - 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.
|
|