www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/gui/open_data.m
function open_data; % OPEN_DATA load data in Lab432 % last modified 28.08.07 global TS GSD_GLOBALS file_name=''; var_name=''; [State,fname,pname,DATA,varname]=file_open(file_name,var_name); if State clear_session(1); TS.data=DATA; [x,y]=size(DATA); for i=1:y TS.name{i}=['crd_' num2str(i)]; end TS.time=(1:x)'; h=findobj('tag','MainFig'); if ~isempty(h) set(h,'name',['Lab432 [' ,pname,fname,']']); end GSD_GLOBALS.en_dis.datapresent=1; gui_en_dis; button = questdlg('Data are loaded. View it?',... '','Yes','No','No'); if strcmp(button,'Yes') view_data; end end function [State,fname,pname,DATA,varname]=file_open(file_name,var_name); % FILE_OPEN is the utility function for OPEN_DATA % Using: [State,fname,pname,DATA,varname]=file_open(file_name,var_name); % State-{0-Error, % 1- read OK } % fname-file name % pname-path to the file % varname-name of used variable in data file % file_name and var_name see in OPEN_DATA % % last modified 24.09.04 State=0; DATA=[]; varname=[]; [pname,fname,ext,versn] = fileparts(file_name); if isempty(fname) [fname, pname] = uigetfile( { '*.mat','MAT-files (*.mat)' }, ... 'Select data file...'); if fname==0 return; end; else if ~isempty(ext) fname=[fname ext]; end end S=load([pname,fname]); if isempty(var_name) fn=fieldnames(S);% get all variables names if length(fn)>1 [Selection,ok] = listdlg('ListString',fn,'SelectionMode','Single','Name','Select a variable'); if ok==0 return end else Selection=1; end DATA=getfield(S,fn{Selection}); varname=fn{Selection}; else DATA=getfield(S,var_name); varname=var_name; end if ~isa(DATA,'double') errordlg('Unable to open this variable. Type should be ''double''','Open Error'); return end if length(size(DATA))~=2 errordlg('Unable to open variable. It must be vector or matrix','Open Error'); return end State=1;