|
|
Wie soll das ohne Schleife gehen? |
|
kingkamali |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 14:43
Titel: Wie soll das ohne Schleife gehen?
|
 |
Hallo Leute, ich bin gerade dabei eine Funktion zu schreiben, die einen Vektor übergeben kriegt (1x167500) und als Rückgabe einen Vektor zurückgibt, der bestimmte stellen mit 0 oder 1 markiert,
Das funzt auch, nur mein Problem es dauert viel zu lange, mir wurde auch gesagt dass ich generell in Matlab schleifen meiden sollte, aufgrund des Rechenaufwandes....
Ich hoffe einer kann mir weiter helfen
danke
|
|
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 14:48
Titel:
|
 |
Hallo,
die Schleife an sich ist nicht das Problem, sondern dass y nicht vorbelegt ist:
einfach eine Zeile y=false(size(x)); einfügen vor der Schleife.
Wenn Du aber die Schleife loswerden möchtest, dann geht es auch direkt:
Ciao,
Titus
Zuletzt bearbeitet von Titus am 05.11.2009, 14:49, insgesamt einmal bearbeitet
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 14:48
Titel:
|
 |
Hallo
im Prinzip reicht nur Vergleich zu machen
|
|
|
kingkamali |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 15:52
Titel:
|
 |
danke, jetzt geht es ziemlich schnell
aber was sagt diese Zeile aus
und ist dann der weg mit der schleife schneller oder der direkte vergleich?
Und erst mal danke für die sehr schnellen antworten
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 16:17
Titel:
|
 |
Hallo kingkamali,
die Zeile legt einen Vektor y an, der genauso lang ist wie x, und nur logische Nullen enthält. Die Belegung ist eigentlich egal, weil ja alle Werte in der Schleife festgelegt werden, aber die Länge sollte der von x entsprechen, damit der Vektor y in der Schleife nicht vergrößert werden muss. Das ist nämlich der Vorgang, der die meiste Zeit beansprucht.
Wenn x viele Elemente hat, ist der direkte Vergleich schneller.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.11.2009, 17:31
Titel:
|
 |
Hallo,
was die Geschwindigkeit angeht: wie schon gesagt, der direkte Weg ist schneller, aber (wenn Variable vorbelegt) nicht viel.
Daher: solange vorbelegt ist, kann danach (meiner Meinung nach) programmiert werden, wie will. Ich finde das direkte lesbarer als eine Schleife, aber man braucht nicht mehr wie früher auf Teufel komm raus Schleifen vermeiden ...
Titus
|
|
|
|
|
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.
|
|