|
Findus |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2016, 01:28
Titel: Variable Interpolation
|
 |
|
 |
|
Grüß euch,
mittlerweile bin ich mit meinen Matlab-Erstanwender-Kenntnissen so ziemlich am Ende, deswegen hoffe ich, dass mir hier einer weiterhelfen kann.
Ich habe verschiedene Vektoren, die an versch. Stellen in unbest. Menge Nullstellen besitzen, z.B.:
a = [1;0;5;6;7;0;0;0;0;2;0]
Dabei kann es sein, dass die Nullstellen am Anfang oder Ende stehen, einzeln vorkommen oder in größerer Menge.
Ich möchte nun die Nullstellen durch Interpolation ersetzen. Und sollte eine Nullstelle am Anfang oder Ende stehen, diese einfach abschneiden. Am Beispiel von a:
a = [1;3;5;6;7;4,5;2].
Jetzt habe ich aber nicht nur einen Vektor, sondern messbedingt mind. über 100 Vektoren mit je 130.000 Stellen. Daher denke ich, dass eine Einlesschleife am sinnvollsten wäre.
Ich komme aber auf keinen grünen Zweig, wie ich so eine flexible Suche in der Schleife programmieren könnte.
Hat einer vllt. eine Idee?
Wäre sehr cool, wenn sich jemand findet. Danke!
PS: Falls sich einer fragt warum: Die Vektoren sind Messungen. Und die Software setzt immer Nullen, wenn der zulässige Bereich überschritten wird. Deswegen muss ich die Nullen für die weitere Auswertung "rausschmeißen"
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.03.2016, 02:32
Titel:
|
 |
find
sollte helfen.
Zitat: |
Ich komme aber auf keinen grünen Zweig, wie ich so eine flexible Suche in der Schleife programmieren könnte. |
was hast du denn versucht bis jetzt? welche fehler sind dabei aufgetreten?
sihe dazu auch den thread aus meiner signatur
grüße
_________________
richtig Fragen
|
|
|
Findus |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2016, 10:15
Titel:
|
 |
Dank dir für deine Antwort. Mit dem "find"-Befehl komme ich natülich klar.
Unten ist mein Bsp. für den angepassten Vektor a.
Ich scheitere jetzt aber darin für folgende Fälle:
- wenn nicht nur eine 0 auftritt, sondern mehrere 0 nacheinander
- wenn am Anfang/Ende eine 0/mehrere 0 auftreten, soll er abschneiden
Danke!
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.03.2016, 10:48
Titel:
|
 |
|
|
Findus |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2016, 13:56
Titel:
|
 |
Hallo Winkow,
das wegschneiden am Ende und Anfang des Vektors klappt schon mal super! Und das alles spart mir eine Schleife, perfekt :)
Ziel ist eigentlich, dass der Code so funktioniert:
a = [1;0;5;6;7;0;0;0;0;2;0];
1) Wegschneiden der Nullen am Anfang/Ende:
a = [1;0;5;6;7;0;0;0;0;2];
2) Reduzierung der mehrmals vorkommenden Nullen auf eine Null:
a = [1;0;5;6;7;0;2];
3) Ersetzen der einzelnen Nullen durch Interpolation.
a = [1;3;5;6;7;4,5;2];
Wie kann ich Schritt zwei noch umsetzen?
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.03.2016, 14:14
Titel:
|
 |
|
|
Findus |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.03.2016, 00:31
Titel:
|
 |
Perfekt, vielen Dank!
Je länger ich darüber nachdenke, favorisiere ich doch deine erste Antwort. Denn wenn ich drei Geschwindigkeitsvektoren habe, und nur einer hat die Nullen, dann bleiben die anderen Geschwindigkeitsvektoren unberührt.
|
|
|
|
|
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.
|
|