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

uigetfile kann nicht mehr als 30 Dateien gleichzeitig

 

Genervter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 08:27     Titel: uigetfile kann nicht mehr als 30 Dateien gleichzeitig
  Antworten mit Zitat      
Ich arbeite gerade an meiner Diplomarbeit und benötige hierfür den Befehl uigetfile um an eine Reihe an Dateien zu gelangen um deren Namen und Pfad zu bekommen. Multiselect on usw hab ich alles gemacht. Es funktioniert auch alles einwandfrei. Allerdings kann ich nicht mehr wie 30 Files gleichzeitig aufnehmen. Wenn ich das tue gibt er mir die für die filenams und pathname jeweils Null zurück. Kann mir jemand sagen mit was ich das so flexibel gestallten kann um X files zu öffnen ?


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.04.2010, 08:51     Titel:
  Antworten mit Zitat      
Hallo, ich vermute du hast Matlab Version R2006a bis R2007a,
da passiert leider dieser Fehler.

Holl dir aus Fileexchange uigetfiles oder programmiere über
uigetdir + dir + listdlg dir einen Umweg

Code:

path2files=uigetdir()
files=dir(path2files)
files={files(~[files.isdir]).name}
sel =listdlg('ListString',files)
files=files(sel)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 13.04.2010, 08:54     Titel:
  Antworten mit Zitat      
Mein Test auf WinXP, R2009b:

Code:

[FileName,PathName] = uigetfile('*.m','Select the M-file','multiselect','on');
 


Ich habe 60 Dateien in meinem Verzeichnis erfolgreich selektieren können und die Rückgabewerte sind entsprechend.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Genervter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 09:21     Titel:
  Antworten mit Zitat      
Hey das ging ja schnell. Ich habe die Matlab Version 7.0.2 Wink So funktioniert es auch ganz gut. Vielen Dank für deine schnelle Hilfe!!! Gibt es noch eine Möglichkeit, diese Liste in der man die Bilder auswählt, größer zu machen? Ich habe sehr lange Dateinamen und da ist diese mini Liste recht unübersichtlich.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.04.2010, 09:40     Titel:
  Antworten mit Zitat      
Hallo

das kannst über Property 'ListSize' , [width, height] machen,
Code:


path2files=uigetdir()
files=dir(path2files)
files={files(~[files.isdir]).name}
sel =listdlg('ListString',files,'ListSize',[250,300])
files=files(sel)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Genervter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 09:40     Titel:
  Antworten mit Zitat      
Kann mir noch jemand erklären was die Zeile genau bedeutet ?

Code:
files={files(~[files.isdir]).name}


genauer gesagt meinte ich das hier
Code:

Wenn keine Files im Ordner sind ist der Rückgabewert = 0 ansonsten bekommt er ein Cell Array mit den Filenamen zurück.

@ Andreas: Dieser Bug wurde meines Wissens in der neuen Matlab Version auch behoben. Ich bin auf die Version meiner Firma angewiesen und kann nicht einfach upgraden Sad
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.04.2010, 09:54     Titel:
  Antworten mit Zitat      
Genervter hat Folgendes geschrieben:

(~[files.isdir])


1) dir gibt eine struct array zurück,
dabei enthält es Ordnernamen und Filenamen

2) files.isdir gibt logische Werte, ob der Name eine 0 -> Datei oder 1 -> Ordner ist.

3) Durch eckige Klammer fasse ich alle zu einem Vektor.

4)Mit Delta verneine ich den ganzen Ausdruck

=> Deswegen {files(~[files.isdir]).name} liefert nur Dateinamen zurück
Private Nachricht senden Benutzer-Profile anzeigen
 
gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2010, 14:20     Titel:
  Antworten mit Zitat      
Hallo,

was muss man machen oder ergänzen, damit man aus dem Ordner nur ein bestimmtes File selektieren kann.

Vielen Dank und viele Grüße
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.04.2010, 14:38     Titel:
  Antworten mit Zitat      
Hallo

Code:


ext = '*.mat';

path2files=uigetdir()
% in DIR kannst unterschiedlich Pattern mit übergeben
% wie z.b '*test*.mat'
% Stern - steht für beliebig
files=dir(fullfile(path2files,ext))
files={files(~[files.isdir]).name}
sel =listdlg('ListString',files,'ListSize',[250,300])
files=files(sel)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2010, 09:42     Titel:
  Antworten mit Zitat      
Hallo denny,

THANKS!
 
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 - 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.