WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Array für strfind ist leer

 

djanski
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 03.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2011, 14:45     Titel: Array für strfind ist leer
  Antworten mit Zitat      
Hallo zusammen,

ich habe deinen Satz Dateien deren Namen ich automatisch eingelesen habe. Diese Datein sind alle grundsätzlich gleich aufgebaut, können jedoch den Zusatz "dummy" im namen tragen. Damit meine Daten im weiteren verlauf korrekt verarbeitet werden können ist es nötig zu wissen, welche der Datein diesen Zusatz haben.
Meine idee war es jetzt, mit strfind die jweiligen Dateinamen danach zu druchsuchen. Das sollte dann so aussehen:
Code:

k = length(b) % Länge des Arrays indem die Dateinamen untereinander stehen.
for i = 1:k
strf = strfind(b(i,:), 'dummy');
if isempty(strf)      % Abfrage ob indem Array was steht oder nicht
.
.
.
else
.
.
.
end
end
 

Das Problem was ich jetzt habe ist, dass das Array niemals leer ist. Es steht zwar nicht unbedingt eine Zahl drin aber wird durch die Abfrage mit isempty immer als "gefüllt" beantwortet. Eine Abfrage über length(strf) ist aber auch nur dann möglich, wenn tatsächlich eien Zahl drin steht. Wenn nicht erzeugt Matlab an der Stelle eine Fehlermeldung.
Hat jemand eine Idee wie ich das Problem lösen kann?

MfG
djanski
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.06.2011, 15:27     Titel:
  Antworten mit Zitat      
Definiere mal deinen String als empty, bevor du suchst (außerhalb der Schleife):

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.06.2011, 17:49     Titel: Re: Array für strfind ist leer
  Antworten mit Zitat      
Hallo djanski,

Es ist wichtig, welchen Typ das Array "b" hat. Wenn es eine CHAR-Matrix ist, ist "length(b)" möglicherweise irreführend, weil jenach Anzahl der Strings die Anzahl der Zeilen oder Spalten ausgegeben wird.
Wenn "b" ein Cell-Array ist (was für Strings immer eine weit bessere Methode ist!), bringt "b(i,:)" nicht den gewünschten Effekt. Denn dann ist "strf" ein CELL, das entweder die leere Matrix oder den entsprechenden Index enthält. Aber "isempty({[]})" ist FALSE, da die CELL ja ein Element enthält, wenn auch ein leeres.

Ich vermute also, die geschweiften Klammern helfen weiter:
Code:
k = length(b);
for i = 1:k
  strf = strfind(b{i}, 'dummy');
  if isempty(strf)
  ...

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.