|
|
MATLAB GUI中读取txt文件数据按钮回调函数7 x3 y, A& _- a' l3 @# i- Y
function ReadData_Callback(hObject, eventdata, handles)
9 J/ C0 D+ _# _' i7 K' ^: S! Y% hObject handle to ReadData (see GCBO)5 |2 n- B( v M/ a9 I8 M4 n
% eventdata reserved - to be defined in a future version of MATLAB/ e/ s; X) f4 v- s8 [
% handles structure with handles and user data (see GUIDATA)
* u$ L5 p7 p" q; t. |! i[file path]=uigetfile('*.txt','Choose a File');%读取文件,弹出对话框,提示选择文件3 J5 k1 l/ Q- E$ `0 r
if file==0+ @; L6 O. k) h
warndlg('用户必须选择一个txt文件');% f7 @; p) m+ u" L' j
else' e% Q5 P7 y5 b* ]2 ~
[x0,y0]=textread(fullfile(path,file),'%n%n','headerlines',6);%省略txt文件中前6行,只读取数字,共两列数据1 t' N% ?6 r$ ]
handles.x0=x0;%将读取的第一列数据x0放到 handles结构体中,以便其他函数可以直接调用 U0 B/ Y' e; M2 R! A( t* ~2 {
handles.y0=y0;%将读取的第二列数据y0放到 handles结构体中,同上
1 [+ A, R. Z. }& g5 ^ plot(handles.axes1,x0,y0);%通过handles.axes1访问绘图区域,并将数据绘制在绘图区
, B7 H0 Z- D7 yend; i% i7 p( d" V2 R6 C) C# C8 _ @5 N
% Update handles structure! `+ }6 t& [; X( q* s
guidata(hObject, handles);
! @- f2 \9 b- R( M! s%通过handles.axes1访问绘图区域, F/ B* ~. ~ b% N
%axes1对象属性中,nextplot为replace时,每次绘图均覆盖,为add时,就可以叠加了! x& Y7 ^4 a: k: T4 e7 r
) y7 ~7 g5 z# e% E不知道这个是不是你想要的。2 @0 W7 W# ]+ f; {. U$ X" t4 E1 K
|
|