Hallo,
ich habe leider ein Problem mit meinem Programm bei dem ich einfach nicht weiter komme. Das Programm soll .mat files laden und sie untersuchen.
Beim Öffnen soll der User den Pfad auswählen in dem sich meist mehrere .mat files befinden. Diese sollen in einem Popupmenü aufgelistet werden.
Der User hat nun die Möglichkeit eine der Files auszuwählen. Diese soll dann geladen werden und auf Fehler untersucht werden.
Die 'Pfadauswahl' und 'Popupmenü füllung' habe ich in der opening function untergebracht. Sie funktioniert und sieht so aus:
Code:
function Programm_GUI_OpeningFcn(hObject, eventdata, handles, varargin)
%user has to choose path
folder = uigetdir('','Wählen Sie einen Pfad aus');% select path
fileList = dir(fullfile(folder, '*.mat')); %filter files with .mat ending in path
c= struct2cell(fileList);
g = c(1,:);
set(handles.popupmenu1, 'String', g)% set handles of popupmenu1 with chosen filenames
Allerdings kommt beim anklicken einer beliebigen Datei im popupmenü folgender Fehler:
Error using load.
XXXXXX1.mat' is not found in the current folder or on the MATLAB path, but exists in:\\\XXX\\\\Desktop....
Change the MATLAB current folder or add its folder to the MATLAB path.
Die Callback funktion sieht so aus:
Code:
function popupmenu1_Callback(hObject, eventdata, handles)
% load the chosen lap and save as Data
names = get(handles.popupmenu1,'String'); % get the contents in popupmenu
idx = get(handles.popupmenu1,'Value'); % get the chosen value
LapChoice= names(idx); % fill LapChoice with chosen Filename
Data = load(LapChoice{1}); %load chosen file
Ich habe noch ein wenig herum probiert und nun habe ich es geschafft in der Callback function den Pfad und den gewünschten Titel der Datei mittels fullfile in einer Variable zusammenzufügen.
Mein neues Problem ist, dass ich die Datei trotz korrektem Pfad nicht öffnen kann.
Das ist die Opening function
Code:
%user has to choose path
folder = uigetdir('','Wählen Sie einen Pfad aus');% open ui to select path
fileList = dir(fullfile(folder, '*.mat')); %filter files with .mat ending in path
c= struct2cell(fileList);
g = c(1,:);
set(handles.popupmenu1, 'String', g)% set handles of popupmenu1 with chosen filenames set(handles.popupmenu1, 'UserData', folder);
names = get(handles.popupmenu1,'String'); % get the contents in popupmenu
idx = get(handles.popupmenu1,'Value'); % get the chosen value
LapChoice= names(idx); % fill LapChoice with chosen Filename
Data = fullfile(folder, LapChoice)
S = load(Data)
Mein neues Problem ist, dass ich die Datei trotz korrektem Pfad nicht öffnen kann.
Was passiert denn stattdessen? Fehlermeldungen sind immer aufschlussreich. Ich rate mal, dass es daran liegt, dass dein
LapChoice
ein Cell String ist. Lösung:
Code:
folder = uigetdir('','Wählen Sie einen Pfad aus');
fileList = dir(fullfile(folder, '*.mat'));
g = {fileList.name}; % Einfacher set(handles.popupmenu1, 'String', g) set(handles.popupmenu1, 'UserData', folder);
function popupmenu1_callback(hObject, EventData, handles)
names = get(handles.popupmenu1, 'String'); % get the contents in popupmenu
idx = get(handles.popupmenu1, 'Value'); % get the chosen value
LapChoice = names{idx}; % Geschweifte Klammern!
file = fullfile(folder, LapChoice)
S = load(file)
Oh man ja das war wirklich das Problem. Jetzt läuft es. Vielen Dank für die schnelle Hilfe
Einstellungen und Berechtigungen
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
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.