|
|
Preallocation eines Cell-Arrays (und dynamisch erweitern) |
|
punkNgrind |
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 12.07.2016, 13:04
Titel: Preallocation eines Cell-Arrays (und dynamisch erweitern)
|
|
Hallo Zusammen,
möchte gerne diese Warnmeldung lösen:
The variable 'Daten' appears to change size on every loop iteration. Consider preallocation for speed.
Wenn ich nicht vorher den Funktionsaufruf habe, könnte ich eine Preallocation anstelle des Funktionsaufruf folgenermaßend durchführen:
Weiß jemand, wie ich in diesem Falle eine saubere Programmierung hinbekomme?
|
|
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.07.2016, 14:04
Titel:
|
|
Hallo,
mache schon vorher eine Cell-Array aus der Variable Daten (falls du weißt wie groß sie wird):
Gruß
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 12.07.2016, 14:37
Titel:
|
|
Hey schon wieder Du, danke das Du hilfsbereit bist.
Der Aufruf:
gibt ja schon ein Rückgabewert mit unbekannter Größe zurück.
Anzahl ist ja nur - in diesem Fall - die maximale Anzahl an Elemente die dazukommen können, aber dies wird ja noch durch eine Bedingung beeinflußt:
Daher ist die größe des Cell-Arrays von mehreren Faktoren abhängig:
1. erster funktionsaufruf
2. Bedingung in der for-schleife
Ein...
...am Anfang bringt nur die zusätzliche Warnmeldung:
The variable 'Daten' appears to be preallocated, but preallocation is not recommended here.
Und die andere Warnmeldung geht dadurch nicht weg.
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.07.2016, 14:48
Titel:
|
|
Hallo,
ich würde sogar die Schleife weg tun wie folgt:
lg Rob
|
|
|
punkNgrind |
Themenstarter
Forum-Century
|
|
Beiträge: 136
|
|
|
|
Anmeldedatum: 10.03.11
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 12.07.2016, 15:17
Titel:
|
|
Funktioniert einwandfrei, erstmal Danke dafür.
*Ui ui ui* einfach nachzuvollziehen ist das für mich nicht.
Ich bin ja kein Freund von solch verschachtelten Aufrufen (vll. weil ich kein Informatiker bin ), ist ja nicht gerade einfach bei einer Fehlersuche zu debuggen.
Allerdings hast du mir auch damit gezeigt, dass ich vll. versuchen sollte weniger mit for-Schleifen auszukommen.
Wie so ist für MATLAB an dieser Stelle:
...die Speicherbereitstellung kein Problem mehr? Weil er den Speicher einmal um length(AktuellesElement) erweitert wird?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.07.2016, 19:43
Titel:
|
|
Hallo,
man sollte romats Code so umschreiben können:
Wenn es keine Performance-Probleme macht, kann man die Warnung auch gerne mal ignorieren. Wenn man nicht möchte, dass sie weiter angezeigt wird: Rechts-Klick --> Suppress.
Grüße,
Harald
|
|
|
|
|
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 - 2024
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.
|
|