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

Mat Dateien in Popupmenu einlesen, aber erster Eintrag leer

 

furkan-karatas
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 29.09.2015, 10:23     Titel: Mat Dateien in Popupmenu einlesen, aber erster Eintrag leer
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem:
Ich möchte in ein Popupmenu aus einem bestimmten Ordner .mat Dateien einlesen (das funktioniert einwandfrei), jedoch möchte ich zusätlich einen leeren Eintrag einlesen, dh. der erste Eintrag des Popupmenüs soll leer sein.

Der Code zum Einlesen der .mat Dateien sieht folgendermaßen aus:
Code:

CellConfigFiles = GetFiles('\\DatenBank\ZDE','\CellConfig','Mat');
set(handles.CellConfigPopup,'String',CellConfigFiles);


Wobei die Funktion GetFiles nur eine Funktion ist die festlegt, dass 'Mat' eine .mat Datei ist

Meine Idde für mein Problem ist folgendes:
Code:

CellConfigFiles = GetFiles('\\DatenBank\ZDE','\CellConfig','Mat');
set(handles.CellConfigPopup,'String',{'',CellConfigFiles});
 


Jedoch erhalte ich diese Fehlermeldung: Cell array of strings may only contain string and numeric matrices

Mir ist schon klar, dass mein CellConfigFiles kein String ist, aber wie wandele ich dies in ein String um?

Oder bin ich auf einem komplett falschen Weg?

Vielen Dank schonmal
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: 29.09.2015, 11:24     Titel: Re: Mat Dateien in Popupmenu einlesen, aber erster Eintrag l
  Antworten mit Zitat      
Hallo furkan-karatas,

Benutze den Debugger um herauszufinden, wass
Code:
{'',CellConfigFiles}

ist. Es ist nicht nur nicht "kein String", sondern auch kein Cell String, denn es enthält einen leeren String und dann einen Cell String.

Du brauchst aber einen Cell String mit einem zusätzlichen Eintrag vorne dran. Du willst also einen String einfügen, oder Cellstrings verbinden:
Code:
popString = cat(1, {''}, CellConfigFiles(:));  % (:) falls CellConfigFiles eine Zeile ist

% Oder:
popString(2:length(CellConfigFiles) + 1) = CellConfigFile;
popString{1} = '';

Es gibnt noch eine reihe weitere Möglichkeiten. Dir cat Version sieht hübscher aus, intern ist sie meiner Einschätzungnach aber weniger effizient. Da es um GUIs geht ist aber der träge Nutzer sowieso das größte Bottleneck, also wird die Laufzeit nicht das Problem sein.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
furkan-karatas
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 29.09.2015, 11:40     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für deine schnelle Antwort.

habe beide Varianten durchprobiert, jedoch wird bei beiden Fällen nur der erste Eintrag des Popupmenüs übergeben (der ist zwar jetzt leer wie gewollt) , jedoch fehlen jetzt die anderen Dateien.

Da ich noch ein Neuling bin habe ich keine Ahnung wie das mit dem Debugger geht.

Gruß
Furkan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.09.2015, 12:07     Titel:
  Antworten mit Zitat      
Hallo,

in dem von dir eröffneten Thread
http://www.gomatlab.de/xlabel-und-ylabel-t38365.html
wurde dir bereits geschrieben, wie das Debuggen geht und wie du mehr darüber herausfinden kannst.

Auch hier wird das schön beschrieben
http://de.mathworks.com/help/matlab.....process-and-features.html

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 29.09.2015, 12:16     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für dein Tipp, mir ist bewusst das ich das schonmal gefragt habe.
Damals hatte ich mein Problem ohne Verwendung des Debuggers gelöst.
Deshalb habe ich nochmals die Frage gestellt. Tut mir leid, falls es nicht angebracht war.
Wenn ich ein Breakpoint setzte taucht für CellConfigFiles folgendes auf:
Habe ein Screenshot als Anhang hinzugefügt.

Gruß
Furkan

CellConfigFiles.jpg
 Beschreibung:

Download
 Dateiname:  CellConfigFiles.jpg
 Dateigröße:  87.03 KB
 Heruntergeladen:  461 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.09.2015, 12:37     Titel:
  Antworten mit Zitat      
Hallo,

hast du denn Jans Vorschläge versucht?

Am effizientesten ist es immer, wenn du reproduzierbare Beispiele zur Verfügung stellst, so dass man selbst damit experimentieren kann.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 29.09.2015, 12:52     Titel:
  Antworten mit Zitat      
Hallo,

Code:
CellConfigFiles = GetFiles('\\DatenBank\ZDE','\CellConfig','Mat');
CellConfigPopup(2:length(CellConfigFiles) + 1) = CellConfigFiles;
CellConfigPopup{1} = '';


So gibt er mir nur ein leeren Eintrag im Popupmenü aus.

Was meint Jan mit popString? oder ist des egal wie ich des nenne?

Gruß
Furkan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.09.2015, 13:04     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
So gibt er mir nur ein leeren Eintrag im Popupmenü aus.

Um das nachvollziehen bzw. bei der Problemlösung helfen zu können, wäre eben ein reproduzierbares Beispiel hilfreich.

Zitat:
oder ist des egal wie ich des nenne?

Es ist ein Variablenname und somit egal.

Mal eine ganz andere Frage: sollen die zusätzlichen Auswahlmöglichkeiten erst durch Klick auf das Popupmenü sichtbar werden? Dann sollte der bisherige Ansatz klappen:
Code:
CellConfigFiles = {'abc', 'def'}
CellConfigPopup(2:length(CellConfigFiles) + 1) = CellConfigFiles;
CellConfigPopup{1} = '';
ui = uicontrol('style', 'popupmenu', 'String', CellConfigPopup)


Oder sollen sie von Anfang an sichtbar sein? In letzterem Falle müsste man eine Listbox verwenden.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 29.09.2015, 13:26     Titel:
  Antworten mit Zitat      
Hallo Harald,

es sollte von Anfang an sichtbar sein.
Wie verwende ich dann eine Listbox.
Ein reduzierbares Beispiel kann ich leider nicht zur Verfügung stellen da es ein Tool des Unternehmens, in dem ich tätig bin, ist und es sehr umfangreich ist.

Gruß
Furkan
Private Nachricht senden Benutzer-Profile anzeigen
 
furkan-karatas
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 29.09.2015, 13:43     Titel:
  Antworten mit Zitat      
Hallo Harald,

die erste Variante, wenn man draufklickt funktioniert.
Aber das komische ist, dass dann ein neues popupmenü erzeugt wird irgendwo im Gui Fenster Smile

Grüße
Furkan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.09.2015, 14:24     Titel:
  Antworten mit Zitat      
Hallo,

mein Code war nur ein Beispiel, den du unabhängig von deinem GUI ausführen und testen kannst.

Um zu sehen, wo das Problem in deinem Fall liegt, müssten wir auch deinen Fall testen können, und da wiederhole ich mich: wir bräuchten ein reproduzierbares Beispiel.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 30.09.2015, 07:56     Titel:
  Antworten mit Zitat      
Hallo,

endlich habe ich es hinbekommen, vielen vielen Dank

Code:
CellConfigFiles = GetFiles('\\DatenBank\ZDE','\CellConfig','Mat');
CellConfigPopup(2:length(CellConfigFiles) + 1) = CellConfigFiles;
CellConfigPopup{1} = '';
set(handles.CellConfigPopup,'String',CellConfigPopup);
 


Ein anderes Problem wäre jetzt:

Ich möchte dem leeren Eintrag bzw. alle anderen Einträgen Variablen zuweisen damit ich z.B. in anderen Funktionen sagen kann (Wenn leerer Eintrag angeklickt dann führe das und das aus... etc.)
Private Nachricht senden Benutzer-Profile anzeigen
 
furkan-karatas
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 11.08.15
Wohnort: München
Version: ---
     Beitrag Verfasst am: 30.09.2015, 10:13     Titel:
  Antworten mit Zitat      
Habe mein Problem hier gefunden

http://www.gomatlab.de/popup-menu-a.....ble-speichern-t17141.html

Danke trotzdem.

Gruß
Furkan
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 - 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.