No, as far as I know uigetfile will create a modal window (see windowstyle) which will lock matlab interface until a selection is made (and the selected filename can be returned to your originating function/script). In order to avoid this you need a non-modal file selection routine. For example, you may want to create your own display showing the available data files, and create a callback function that will implement the desired trend display once the user has selected a file. For example something based on the following: function TrendFunction(varargin)
files = dir('*.mat');
h_fig = figure;
h_dlg = uicontrol('style','listbox','units','norm','position',[.1 .1 .8 .8],'string',{files.name},'callback',@TrendFunction_selected);
end
function TrendFunction_selected(varargin)
files = get(gcbo,'string');
selected = get(gcbo,'value');
file = files{selected};
data = load(file);
clf(gcbf);
h_ax = axes('parent',gcbf);
plot(h_ax, data.x, data.y);
end
You can make that prettier but that should give you an idea of the code flow...
Best Answer