|
|
Werte in einer Matrix filtern |
|
cpo |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 05.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 12:06
Titel: Werte in einer Matrix filtern
|
 |
Hallo zusammen,
ich habe folgendes Problem:
in einer Matrix (511 zeilen, 650 Spalten) befinden sich Werte zwischen -0.18 und 0.17.
Ich möchte nun alle Werte, die größer als 0.1 bzw. kleiner als -0.1 sind in eine neue Matrix gleicher Größe (511 Zeilen, 650 Spalten) übernehemen. Alle Werte die zwischen -0.1 und 0.1 liegen sollen in dieser durch Nullen ersetzt werden. Wie mache ich das?
Viele Dank für eure Hilfe
cpo
|
|
|
|
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 12:49
Titel:
|
 |
Es gibt 100%ig eine besser Lösung, aber die hier sollte funktionieren:
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 13:12
Titel:
|
 |
Zenon hat Folgendes geschrieben: |
Es gibt 100%ig eine besser Lösung |
Jep ;) Man kann direkt die gesuchten Werte per logischem Vergleich identifizieren und das Ergebnis zur Indizierung der Matrix nutzen:
Etwas schneller ist es, wenn Du die unerwünschten Daten direkt in deiner Datenmatrix zu null setzen würdest, statt zuerst eine neue Matrix der selben Größe zu erzeugen und die Werte umzukopieren:
Epfi
|
|
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 13:20
Titel:
|
 |
Genau an sowas hatte ich dann auch noch gedacht...
Was davon wäre jetzt schneller?
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 13:40
Titel:
|
 |
Schleifen sind in Matlab üblicherweise die langsamere Option. -> Wo es möglich ist, vektoriell rechnen und indizieren.
dürfte so etwa das schnellste sein.
|
|
|
cpo |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 05.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 14:05
Titel:
|
 |
Super, das hat schonmal prima funktioniert! Noch eine kurze Ergänzungsfrage:
Hab den Code mal folgendermaßen modifizeirt:
Anstatt bei Input immer den Variablennamen einzugeben wäre es natürlich komfortabler die jeweilige Variable über ein GUI auszuwählen. Bei Dateien ist der Befehl dafür ja 'uigetfile'; gibt es das auch für Variablen (die sich im Workspace befinden)?
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 14:20
Titel:
|
 |
Hallo
@cpo input ist ein reserviertes Wort, deswegen Verwendung als Variablennamen ist sehr gefährlich.
|
|
|
cpo |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 05.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 14:27
Titel:
|
 |
ok, werde es in input_var umbenennen, danke für den Hinweis!
Gibt es trotzdem eine Möglichkeit die Variablen aus dem Workspace per GUI zu wählen?
|
|
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 14:53
Titel:
|
 |
Hiermit bekommst Du eine Liste aller gerade im MATLAB Workspace befindlichen Variablen. Die Liste könntest Du z.B. einen Listbox zuweisen mit der man dann die jeweiligen Variablen auslesen kann.
Hiermit bekommst Du die Variablen vom aktuellen Workspace.
Schau dir who und whos mal genauer an, man kann meine ich auch type einschränkungen machen.
|
|
|
|
|
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.
|
|