|
|
Ersten gültigen Wert in Matrix finden |
|
bestmedia |

Forum-Fortgeschrittener
|
 |
Beiträge: 72
|
 |
|
 |
Anmeldedatum: 02.04.11
|
 |
|
 |
Wohnort: Jena
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2013, 21:51
Titel: Ersten gültigen Wert in Matrix finden
|
 |
Hallo,
ich habe eine m x n -Matrix. Ungefähr so (nur größer):
NaN NaN NaN NaN NaN
NaN NaN NaN Zahl NaN
NaN Zahl Zahl NaN NaN
NaN Zahl NaN NaN NaN
Zahl Zahl NaN NaN NaN
Ich möchte nun in Jeder Spalte die Zeilennummer wissen, in der zum ersten Mal eine Zahl steht.
Ich hab mir folgendes gedacht:
das Ergebnis sollte dann so aussehen (Bsp. von oben)
r= 5 3 3 2
Hat jemand ne Idee??
Danke,
Marco
|
|
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 05.11.2013, 22:21
Titel:
|
 |
Hallo,
damit deine Lösung funktioniert, brauchst du statt isnumeric(e(m,n)) wohl nur ein ~isnan(e(m,n)).
Falls deine Matrix e aber sehr groß ist, kannst du auch noch geschickter vorgehen.
Nras.
|
|
|
bestmedia |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 72
|
 |
|
 |
Anmeldedatum: 02.04.11
|
 |
|
 |
Wohnort: Jena
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.11.2013, 09:58
Titel:
|
 |
Hallo Nras,
ich habe den Code jetzt so geändert:
funktioniert auch soweit ganz gut! Meine Matrizen sind maximal 1000x1000. Ist das in Matlabgrößen schon eine "große" Matrix?
Du meintest, dass es wohl auch effektiver geht?
Grüße
Marco
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 06.11.2013, 12:39
Titel:
|
 |
Hallo,
das kommt nur drauf an, ob du das Gefühl hast, dass du auf die Ergebnisse warten musst, ober ob sie sofort da sind. Man kann bei der doppelten for-Schleife noch was machen, das vermutlich Zeit einspart. Vor allem, wenn die ersten gültigen Werte (nicht NaNs) öfters erst in den unteren Zeilen stehen. Aber die Zeit, die für das Umschreiben drauf geht, muss man erst mal wieder durch diesen vermeintlichen Zeitgewinn reinholen .
Viele Grüße
|
|
|
bestmedia |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 72
|
 |
|
 |
Anmeldedatum: 02.04.11
|
 |
|
 |
Wohnort: Jena
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.11.2013, 12:48
Titel:
|
 |
Ok, dann kann ich es so lassen. Die Ergebnisse sind sofort da und und meist sind die gültigen werte in der oberen Hälfte anzutreffen
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 06.11.2013, 13:03
Titel:
|
 |
Hallo
eine Verbesserung, nutze BREAK wenn du denn Inneren Schleifendurchlauf abbrechen möchtest. Manipulation der Indizien bringt in dem Fall nichts
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 06.11.2013, 13:06
Titel:
|
 |
Es hätte übrigens auch gereicht, einfach wiorklich nur das isnumeric() durch ein ~isnan zu ersetzen. Das spart den else-Teil. Aber deine Lösung sollte auch klappen.
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 06.11.2013, 13:11
Titel:
|
 |
|
|
bestmedia |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 72
|
 |
|
 |
Anmeldedatum: 02.04.11
|
 |
|
 |
Wohnort: Jena
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.11.2013, 15:13
Titel:
|
 |
auch eine schöne Lösung, vielen Dank.
Ist so ein "Einzeiler" eine saubere Lösung? Oder kann man durchaus geschachtelte Schleifen verwenden?
Grüße
Marco
|
|
|
|
|
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.
|
|