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

Probleme mit char bzw. String

 

turbobeeeni
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 11.05.09
Wohnort: Hannover
Version: 7.6.0 (R2008a)
     Beitrag Verfasst am: 30.11.2009, 16:57     Titel: Probleme mit char bzw. String
  Antworten mit Zitat      
Hallo!

Ich habe ein interessantes Problem. Wenn ich Pfadnamen angebe, dann wird meine Ausgabe in das cell-Array geändert.

Hier mal ein Beispiel

DIRE=cell([1 5]);
DIRE(1)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnjkbngjafjgbjadfgjkfbajgb\angjklnajgnfjkngf'};
DIRE(2)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagndfdbjadfgjkfbajgb\angjklnajgnfjkngf'};
DIRE(3)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnxcvafjgbjadfgjkfbajgb\angjklnajgnfjkngf'};
DIRE(4)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnjkbafjgvcgjkfbajgb\angjklnajgnfjkngf'};
DIRE(5)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnvcjafjgbjadfgjkfbajgb\angjklnajgnfjkngf'};

DIR=cell([1 5]);
DIR(1)= {'W:\A'};
DIR(2)= {'W:\B'};
DIR(3)= {'W:\C'};
DIR(4)= {'W:\D'};
DIR(5)= {'W:\E'};
>> DIR

DIR =

'W:\A' 'W:\B' 'W:\C' 'W:\D' 'W:\E'

>> DIRE

DIRE =

[1x92 char] [1x85 char] [1x89 char] [1x86 char] [1x89 char]

>>


Ich würde gerne ein Skript durchlaufen lassen, dass in verschiedenen Ordnern auf einem Server Dinge auswertet. Dafür wäre es praktisch die Ordner in for-Schleifen durchzulaufen. Ich dachte, wenn ich das in Zellen speichern, dann kann ich einfach sowas in der Art machen:

for n=1:N
DIRECTORY = DIR(n);
...
end

um Dateien in den Ordnern einzulesen. Das klappt aber scheinbar nicht, weil die Ordnernamen so lang sind, dass keine Strings mehr gespeichert werden.
Mache ich aber

DIRECTORY='W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnvcjafjg
bjadfgjkfbajgb\angjklnajgnfjkngf';

ist das überhaupt kein Problem (auf diese Weise kann ich aber nur einen Ordner auswerten)

Weiß irgendjemand weiter?
Private Nachricht senden Benutzer-Profile anzeigen


Jan*
Forum-Century

Forum-Century


Beiträge: 178
Anmeldedatum: 06.11.09
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 30.11.2009, 17:03     Titel:
  Antworten mit Zitat      
Wie greifst du denn auf DIRECTORY zu? Ich denke das Problem ist das Cell Array in DIRECTORY. Die Variable DIRECTORY liefert dir ein 1x1 Cell-Array zurück in dem der String steht. Wenn du als Rückgabewert direkt den String möchtest, musst du auf DIRECTORY(1) zugreifen. Evtl. hakt es hier?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2009, 17:09     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist hier lediglich die Anzeige im Command Window; der Inhalt des Cell Arrays ist davon nicht betroffen. Die Anzeige
[1x92 char] [1x85 char] [1x89 char] [1x86 char] [1x89 char]
bedeutet, dass es eben Strings der jeweiligen Länge sind, die in diesen Feldern stehen.
Der Zugriff ist bei den langen Strings also genauso möglich wie bei den kurzen Strings.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
turbobeeeni
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 11.05.09
Wohnort: Hannover
Version: 7.6.0 (R2008a)
     Beitrag Verfasst am: 30.11.2009, 17:15     Titel:
  Antworten mit Zitat      
Schierig zu sagen, ich lasse ein Script namens 'regexpdir' drüber laufen, dass mir eine File-Liste der in diesem Ordner befindlichen Dateien zurückliefert. Das erwartet den DIRECTORY als String übergeben zu bekommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan*
Forum-Century

Forum-Century


Beiträge: 178
Anmeldedatum: 06.11.09
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 30.11.2009, 17:20     Titel:
  Antworten mit Zitat      
Ich vermute dass du 'regexpdir' keinen String, sondern das Cell-Array mit dem String übergibst. Du müsstest dann also anstelle von DIRECTORY, DIRECTORY(1) übergeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 30.11.2009, 18:47     Titel:
  Antworten mit Zitat      
Hallo,

wenn Du den String im cell array haben möchtest, musst Du mit DIR{1} zugreifen (also geschweifte Klammern) und nicht mit runden Klammern.

Vielleicht war's das schon?!

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
turbobeeeni
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 11.05.09
Wohnort: Hannover
Version: 7.6.0 (R2008a)
     Beitrag Verfasst am: 01.12.2009, 16:20     Titel:
  Antworten mit Zitat      
Vielen Dank!
Ich glaube das hat mein Problem gelöst!
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.