Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-02, 11:28   #1
bigenterprise
初级会员
 
注册日期: 2008-07-14
年龄: 42
帖子: 3
声望力: 0
bigenterprise 正向着好的方向发展
默认 变量丢失的问题,很奇怪,大家给看看

我的一个GUI程序
[filename,pathname]=uigetfile('*.txt','Select the file');
file=fullfile(pathname,filename);
fid = fopen(file,'r');
if fid==-1
msgbox ('Please open a file');
else
handles.fid=fid;
datainformation=fgets(fid,100);
name=fgets(fid,1000);
time=fgets(fid,100);
time1=time(13:22);
set(handles.text_time,'String',time1);
fscanf(fid,'%c',19);
channelnumtemp=fscanf(fid,'%d',1);
handles.channelnum=channelnumtemp;
strChannelnum=num2str(handles.channelnum,2);

set(handles.text_channelnum,'String',strChannelnum);
fscanf(fid,'%c',14);
samples=fscanf(fid,'%d',1);
handles.samples=samples;
set(handles.text_samples,'String',samples);
set(handles.edit_firstnum,'String','1');
for i=1:7
fgets(fid,50);
end
fgets(fid,14);
starttime=fscanf(fid,'%f',1);
fgets(fid,9);
fscanf(fid,'%c',15);
endtime=fscanf(fid,'%f',1);
caijitime=endtime-starttime;
handles.caijitime=caijitime;
displaytimes=round((caijitime+4)/10);
handles.displaytimes=displaytimes;
dataline=caijitime*samples;
str_dataline=num2str(dataline);
set(handles.edit_lastnum,'String','80000');

datarow=channelnum+1;
handles.datarow=datarow;
for j=0:3
fgets(fid,50);
end
fgets(fid,150);


interval=1/samples;
handles.interval=interval;
str_caijitime=num2str(caijitime);
set(handles.text_zongshijian,'String',str_caijitime);
set(handles.pushbuttonnexttimes,'Enable','on');
address=zeros(10,1);
address(1)=ftell(fid);
handles.address=address;
guidata(hObject,handles);
end


程序执行到红色的那行时,就出现变量丢失的情况,直接提示说handles.channelnum不存在,将handles.channelnum换成channelnumtemp,也出现同样的情况,我实在不知道是什么原因,大家给看看
bigenterprise 当前离线   回复时引用此帖
旧 2008-10-02, 19:08   #2
kilo636i
初级会员
 
注册日期: 2008-06-02
年龄: 51
帖子: 4
声望力: 0
kilo636i 正向着好的方向发展
默认 回复: 变量丢失的问题,很奇怪,大家给看看

在你使用这个变量之前,请先使用guidata保存handles,以便是handles中的变量进行更新。否则,在工作空间中的handles里还不会保存你刚刚定义的变量,调用的时候就会找不到此变量。如果为了懒省事,可以在此前使用过渡变量,即去掉前面的handles.保存,直到函数结束时再保存相关的变量至handles空间。
kilo636i 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 14:24


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.