|
humpel |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 06.09.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2020, 12:31
Titel: num2str - zu langsam
|
|
Hallo,
in meinem Code befindet sich eine Zeile, welche sehr sehr oft aufrufen wird:
x=[{'000'} {num2str(a)} {num2str(b,'%04.f')}];
Leider sorgt diese für >50% der Simulationsdauer und bremst somit die Simulation aus. Gibt es eine Möglichkeit diese zu Beschleunigen? Gibt es eine elegantere Art aus Zahlen einen String zu generieren?
Mir ist durchaus bewusst, dass die Aussichten recht trübe sind, hoffe aber auf einen wertvollen Input.
Gruß,
humpel
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.08.2020, 09:12
Titel:
|
|
Hallo,
du könntest versuchen, ob sprintf schneller ist.
Sind diese vielen Aufrufe in einer for-Schleife? Dann würde ich versuchen zu vektorisieren.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
humpel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 06.09.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2020, 14:47
Titel:
|
|
Die Zeile Code ist mit sprintf einfach mal um Faktor 2 bis 5 schneller
Danke, Harald!!!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.08.2020, 15:13
Titel:
|
|
Hallo,
ist schon mal was. Mit Vektorisierung kann man häufig einen Faktor 10 oder mehr raus holen. Vielleicht sogar zusätzlich zu dem Gewinn durch
sprintf
.
Wenn du allerdings durch die Verwendung von sprintf den Algorithmus insgesamt (so verstehe ich das) so stark beschleunigen konntest, dann ist die Frage, ob sprintf überhaupt noch der Bottleneck ist.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 15.08.2020, 14:12
Titel: Re: num2str - zu langsam
|
|
Hallo humpel,
Dein code erzeugt 3 skalare {1x1} CELL-Arrays und verbindet sie dann zu einem {1 x 3} CELL Array.
Erzeuge das {1x3} CELL Array lieber direkt. Mit dem bereits erwähnten
sprintf
ird es noch schneller:
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.
|
|