|
psigh |

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 21:27
Titel: Array verkleinern
|
 |
Hallo Leute,
ich schon wieder (-:
Noch eine Frage zu Arrays
Ich habe ein Array, in dem einige Eiinträge leer sind. Z.B.
[] abab [] abab hshh []
Die leeren Einträge sollen jetzt einfach weg und der rest soll zusammen geschoben werden:
abab abab hshh
Vielleicht kann mir da einer von Euch helfen. Ich würde es sicher mit eine for-Schleife hinbekommen, aber es geht bestimmt besser.
Vielen Dank,
Dominik
|
|
|
|
|
Vito |

Forum-Guru
|
 |
Beiträge: 315
|
 |
|
 |
Anmeldedatum: 02.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 22:09
Titel:
|
 |
|
|
Fourier |

Forum-Guru
|
 |
Beiträge: 329
|
 |
|
 |
Anmeldedatum: 05.04.10
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: 2009b
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 22:20
Titel:
|
 |
Hi,
nichts für ungut Vito, aber ich hab irgendwo gelesen dass es besser ist so zu machen :
backward compatibility oder so, steht unter doc cellfun, vlt verstehst du mehr als ich, un erklärst mir
gruss
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
Vito |

Forum-Guru
|
 |
Beiträge: 315
|
 |
|
 |
Anmeldedatum: 02.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 22:29
Titel:
|
 |
Hi,
der Kollege wollte doch die leeren Elementen entfernen, oder
Wenn du z. Bsp folgendes hast
oder habe ich dich jetzt falsch verstanden?
Gruß,
Vito
|
|
|
Fourier |

Forum-Guru
|
 |
Beiträge: 329
|
 |
|
 |
Anmeldedatum: 05.04.10
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: 2009b
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 22:37
Titel:
|
 |
Hi,
ja du hast mich falsch verstanden.
es ist auch richtig was du gemacht hast.
nur wie ich sagte, es sollte vorteile haben wenn mans so macht.
wie gesagt vlt findest dus schneller als ich heraus, warum es so ist ;)
gruss
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 23:56
Titel:
|
 |
Liebe Leser,
ruft eine Builtin-Function auf, die jedes einzelne Cell-Element an die Funktion ISEMPTY weiter gibt. Dabei gibt es einen deutlichen Overhead bei jedem Funktionsaufruf.
testet die Dimensionen aller Cell-Elemente innerhalb von CELLFUN. Das ist erstaunlich viel schneller und gilt für alle Methden von CELLFUN, die als String eingegeben werden können (siehe "help cellfun").
In Matlab 6.5 wurde der C-Mex-Source CELLFUN.C mit ausgeliefert, so konnte man ihn auch sehr leicht erweitern.
Gruß, Jan
|
|
|
psigh |
Themenstarter

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 01:40
Titel:
|
 |
Vielen Dank für Eure Hilfe !
Ich hab alles mal versucht und die Sache die geklappt hat ist folgende:
idx = find(cellfun(@isempty,s));
s(idx)=[];
Vielleichjt hab ich die anderen Vorschläge flasch implementiert.
Dominik
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 17:07
Titel:
|
 |
Hallo Dominik,
ich dachte, wir hätten ein paar Hinweise darauf gegeben, dass 'isempty' besser ist als @isempty. Aber was soll's. ;-)
Mit Logical-Indexing geht es effizienter, weil man das FIND gar nicht braucht:
Je nach Matlab Version und Größe der Variablen kann aber auch dies schneller sein:
[code]idx = cellfun('isempty', s);
s = s(~idx);[code]
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.
|
|