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

Datei in Listbox anzeigen

 

Philipp68
Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 22.07.2017, 11:57     Titel: Datei in Listbox anzeigen
  Antworten mit Zitat      
Hallo,
ich habe eine Funktion, die mir alle Excel-Datein in einer Listbox anzeigen soll. Die GUI habe ich ohne Guide erstellt.


Code:

function FunktionRefresh(hObject, eventdata, handles)

Excel_List = dir ('*.xlsx');
Excel_List_Size = size(Excel_List);
Excel_Names = struct2cell(Excel_List);

for i = 1:Excel_List_Size(:,1)
    Excel_Names_New(i,1) = Excel_Names(1,i);
end

assignin('base','Excel_Names_New',Excel_Names_New);
assignin('base','Excel_List_Size',Excel_List_Size);
assignin('base','Excel_List',Excel_List);

set(handles.Listbox,'String',Excel_Names_New);

end
 


Nun tritt in der letzten Zeile folgende Fehlermeldung auf.
Not enough input arguments.

Error in FunktionRefresh (line 15)
set(handles.Listbox,'String',Excel_Names_New);

Ich sehe das Problem nicht, denn wenn ich "set...." in den GUI Code schreibe, funktioniert es.
Wäre für eure Hilfe echt dankbar!
Private Nachricht senden Benutzer-Profile anzeigen


huhu0815
Forum-Century

Forum-Century


Beiträge: 141
Anmeldedatum: 20.02.14
Wohnort: Dresden
Version: R2013b, R2014b, R2016b, R2018a
     Beitrag Verfasst am: 22.07.2017, 17:33     Titel:
  Antworten mit Zitat      
Hallo

also in der 2016b funktioniert dein Code.

Probier mal bitte als Alternative
Code:

Excel_List = dir('*.xlsx');
Excel_Names_New = {Excel_List.name}';
Excel_List_Size = numel(Excel_List);

set(handles.listbox1,'String',Excel_Names);


ansonsten kann ich das Problem leider nicht nachstellen
Private Nachricht senden Benutzer-Profile anzeigen
 
Philipp68
Themenstarter

Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 24.07.2017, 10:15     Titel:
  Antworten mit Zitat      
Guten Morgen huhu,
ich benutze zur Zeit die 2017a Version und sollte dann eigt auch bei mir gehen. Habe deinen Code ausprobiert.

Code:

function FunktionRefresh(hObject, event)

Excel_List = dir('*.xlsx');
Excel_Name = {Excel_List.name}';
Excel_List_Size = numel(Excel_List);

assignin('base','Excel_Name',Excel_Name);
assignin('base','Excel_List',Excel_List);

set(handles.Listbox,'String',Excel_Name);
end
 


Jedoch wird wieder die gleiche Fehlermeldung angezeigt. Ich poste mal den Code der Liste und des Buttons.

Code:

handles.Listbox = uicontrol(tab2,'Style','listbox','fontsize',10,'Position',[20,15, 280, 260]);

handles.refresh = uicontrol(tab2,'style','pushbutton','String','Refresh','Position',[20,280, 100, 50],'Callback',@FunktionRefresh);

set(handles.refresh,'fontsize',10,'backgroundcolor','w');
 


Ich bin echt ratlos und kann keinen Fehler entdecken. Im Internet wird überall dieser Befehl für die Listbox ausgeführt.

Füge ich
Code:
set(handles.Listbox,'String',Excel_Names_New);

ich den GUI Code eine und "Excel_Names_New" befindet sich bereits im Workspace und drücke erneut "run" werden die Files in der Liste angezeigt.

Zuletzt bearbeitet von Philipp68 am 24.07.2017, 10:34, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.07.2017, 10:31     Titel:
  Antworten mit Zitat      
Hallo,

du musst dafür sorgen, dass die Handles auch an die Callback-Funktion zur Verfügung gestellt werden:
Code:
handles.refresh = uicontrol('style','pushbutton','String','Refresh','Position',[20,280, 100, 50],'Callback',{@FunktionRefresh, handles});


Ich persönlich finde es einfacher, eine Oberfläche mit GUIDE oder dem Nachfolger davon, App Designer, zu entwerfen.

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

Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 24.07.2017, 10:42     Titel:
  Antworten mit Zitat      
Guten Morgen Harald,
vielen vielen Dank! Jetzt funktioniert es!
App Desgner kannte ich noch nicht, GUIDE schon, nur hatte ich mit GUIDE eine paar Probleme und habe sie nun per Code erstellt. Werde mir AppDesigner mal genauer anschauen und vllt alles noch dort umsetzen.
Auch nochmal Danke an huhu für deinen Vorschlag Smile
Lg
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.