|
|
Beim Wechsel der Zahl hochzählen lassen |
|
FrenktheCast |

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 23.11.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.11.2014, 15:48
Titel: Beim Wechsel der Zahl hochzählen lassen
|
 |
Hallo
Aus einem Vektor a möchte ich, immer beim Intervallwechsel, hoch zählen lassen. Das Intervall soll passend in b abgelegt werden so das ersichtig lich ist zu welchem Intervall der Wert gehört.
und daraus soll:
werden
Bisher nutze ich folgende Variante die aber mehr mehreren zehn Tausend Datenpunkten sehr langsam ist
Danke!
Zuletzt bearbeitet von FrenktheCast am 21.11.2014, 16:03, insgesamt einmal bearbeitet
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.11.2014, 15:51
Titel:
|
 |
|
|
FrenktheCast |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 23.11.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.11.2014, 16:03
Titel:
|
 |
danke für die sehr schnelle Antwort Harald!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 23.11.2014, 22:43
Titel: Re: Beim Wechsel der Zahl hochzählen lassen
|
 |
Hallo FrenktheCast,
Haralds Lösung ist natürlich genial.
Es lohnt sich aber danach zu suchen, warum Deine Schleife so langsam ist. Es fehlt nämlich die "Pre-allocation". Deshalb wird die Ausgabe-Variable "c" in jeder Iteration vergrößert. Das ist extrem ineffizient. Denn dadurch wird jedesmal ein neuer Vektor im Speicher alloziert und der Inhalt des alten kopiert. Falls der Input 1e5 Werte hat, bedeutet das, dass sum(1:1e5)*8 Byte alloziert und kopiert werden, also 40GB!
Mit Deiner Schleife benötigt das auf meinem Rechner 26 Sekunden.
Wenn man die Ausgabe aber "pre-alloziert" sinkt die Rechenzeit auf 0.006538 sec:
Ich habe zusätzlich noch ein wenig vereinfacht, das spielt aber für die Laufzeit keine Rolle.
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.
|
|