|
rooky |

Forum-Fortgeschrittener
|
 |
Beiträge: 76
|
 |
|
 |
Anmeldedatum: 25.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 05:24
Titel: Punkte in Matrix finden
|
 |
Hallo alle miteinander,
ich komm gerade mit einem Punkt nicht weiter:
ich habe eine Matrix
a schaut so aus, kann man leichter lesen:
und einen Vector:
b hat genausoviele Werte wie a Spalten. Jetzt suche ich genau die Werte in a die b vorgibt. Als Ergebnis sollte stehen:
Also der jeweilige Wert in der Spalte.
Kann mir da jemand helfen?
Danke
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 10:51
Titel:
|
 |
das währe jetzt erstmal meine lösung. alternativ geht natürlich auch eine simple for schleife.
_________________
richtig Fragen
|
|
|
rooky |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 76
|
 |
|
 |
Anmeldedatum: 25.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 16:36
Titel:
|
 |
Vielen Dank,
das mit der Schleife wuerde ich auch koennen.
Deinen Vorschlag probier ich jetzt mal aus
Es ist nur die Frage was ist schneller, die Schleife oder dein Vorschlag
Danke
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 16:57
Titel:
|
 |
du hast die frage heute morgen um 4 gestellt es ist jetzt 16 uhr. das der code 12 stunden wieder rausholt ist fraglich.
aber scherz bei seite. sowas ist immer wichtig. nutzen und aufwand. forschleifen sind nicht unbedingt langsam. matlab macht da intern einige optimierungen. wenn der speicher vorher reserviert ist gehen die meisten sachen mit for schleifen recht fix. wenn du also 2 h damit verbringst code zu optimieren um 1 sek laufzeit zu erhalten ist das nur sinnvoll wenn große datenmengen verarbeitet werden und es auf diese sek auch ankommt ^^
_________________
richtig Fragen
|
|
|
rooky |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 76
|
 |
|
 |
Anmeldedatum: 25.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 17:42
Titel:
|
 |
kurz zur Zeit.
Ich hab die Frage Nachts um glaub ich 23.00Uhr gestellt, dann bin ich ins Bett gegangen. Bei euch war es da 4.00Uhr, kann sein. Ich mag euer Forum, weil die Antworten besser sind als in meinem Land. Sorry.
Die Zeit ist bei mir ganz wichtig!! Nicht meine Arbeitszeit, sondern die Rechenzeit.
Wie muesste ich denn den Code aendern wenn meine Matrix 10 x 380 und der Vector 1 x 380 waere? (Ich hab leider auch keine Umlaute)
Danke
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 17:50
Titel:
|
 |
rooky hat Folgendes geschrieben: |
Wie muesste ich denn den Code aendern wenn meine Matrix 10 x 380 und der Vector 1 x 380 waere? (Ich hab leider auch keine Umlaute)
Danke |
was funktioniert denn an meiner lösung nicht bei der größeren matrix?
_________________
richtig Fragen
|
|
|
rooky |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 76
|
 |
|
 |
Anmeldedatum: 25.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 18:03
Titel:
|
 |
passt alles. Danke. War mein Fehler
Hier zur Info:
mit Schleife:
Elapsed time is 0.000009 seconds.
dein code:
Elapsed time is 0.000020 seconds.
ich glaub dann bleib ich bei der Schleife.
Und nochmals vielen Dank und einen schoenen Abend (oder halt guten Morgen)
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 18:19
Titel:
|
 |
nochmal ne nachfrage. wie siht denn deine schleifenlösung aus?
meine schleife ist weitaus langsamer als meine ursprüngliche version
bsp:
ergebniss:
_________________
richtig Fragen
|
|
|
rooky |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 76
|
 |
|
 |
Anmeldedatum: 25.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 23:38
Titel:
|
 |
Richtigstellung:
Das ist hier die (mir bekannte) schnellste Loesung
Auch wenn ich
schon definiert ist, ist die Schleife langsamer.
Scheinbar war mein Rechner bei meinem Testlauf mit irgnedwas beschaeftigt, was mein Ergebnis verfaelscht hat.
Ich habs ja gesagt: Die Antworten hier sind nachhaltiger
Danke
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.01.2014, 12:51
Titel: Re: Punkte in Matrix finden
|
 |
Hallo rooky,
Winkows Lösung lässt sich noch marginal beschleunigen:
Denn so spart man sich eine Addition von b mit einem Vektor. Ich bezweifele aber, dass dies die Laufzeit merklich verkürzt.
Für solche Indizierungsprobleme sind auch SUB2IND und IND2SUB hilfreich. Intern machen sie aber genau das, was in Winkow's Vorschlag auch gemacht wird.
Gruß, Jan
|
|
|
|
|
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.
|
|