Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-05-07, 09:02   #1
hualiangzi
初级会员
 
注册日期: 2008-05-02
年龄: 38
帖子: 25
声望力: 18
hualiangzi 正向着好的方向发展
默认 在GUI中数据的传递

各位高手,我是在GUIDE中设计界面的,但我发现里面的数值或者说函数,总是不易传递。
比如说,我在一个pushbutton的callback的语句下写命令得到了一个向量,我现在要将这个向量的值传递到 “function 界面名_OpeningFcn(hObject, eventdata, handles, varargin)”语句下来供调用,请问各位高手怎么实现。
我想这也是很多GUI初学者都想知道的。望高手能人学者给出一些易懂的方案。发在论坛上,让我们这些初学者进步更快。
谢谢!
hualiangzi 当前离线   回复时引用此帖
旧 2008-05-07, 15:48   #2
newshowfun
初级会员
 
注册日期: 2008-04-02
年龄: 39
帖子: 14
声望力: 18
newshowfun 正向着好的方向发展
默认 使用全局变量

可以考虑使用全局变量,global命令,自己help global一下
newshowfun 当前离线   回复时引用此帖
旧 2008-05-07, 23:12   #3
hualiangzi
初级会员
 
注册日期: 2008-05-02
年龄: 38
帖子: 25
声望力: 18
hualiangzi 正向着好的方向发展
默认 不行啊

我试了一下,好像不行,能不能说的更具体,或者还有其他的方法吗?
hualiangzi 当前离线   回复时引用此帖
旧 2008-05-08, 08:50   #4
newshowfun
初级会员
 
注册日期: 2008-04-02
年龄: 39
帖子: 14
声望力: 18
newshowfun 正向着好的方向发展
默认

在pushbutton-callback函数外,即界面的m文件中,利用global 定义你那个需要传递的向量。
newshowfun 当前离线   回复时引用此帖
旧 2008-05-08, 09:32   #5
hualiangzi
初级会员
 
注册日期: 2008-05-02
年龄: 38
帖子: 25
声望力: 18
hualiangzi 正向着好的方向发展
默认

首先非常感谢你的回复,可我做了,确实不行。我现在把我的主程序贴过来,你看看是不是这么回事。如下:
% --- Executes just before shi is made visible.
function shi_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to shi (see VARARGIN)
x=I;
X=fft(x);
handles.current_data=x;
plot(handles.current_data);

% Choose default command line output for shi
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes shi wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = shi_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in dakai_pushbutton.
function dakai_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to dakai_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
H={'*.wav'};
[filename,pathname]=uigetfile(H,'请选择需要打开的声音');
file=strcat(pathname,filename);
I=wavread(file);
sound(I);
global I;


% --- Executes on button press in huatu_pushbutton.
function huatu_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to huatu_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
plot(handles.current_data);
我现在要用到向量I的值(正如上面我想调用它一样),可准是显示错误:找不到I的值。到底怎么办啊?
hualiangzi 当前离线   回复时引用此帖
旧 2008-05-09, 09:09   #6
tpwxhfh
初级会员
 
注册日期: 2008-05-08
年龄: 39
帖子: 10
声望力: 17
tpwxhfh 正向着好的方向发展
默认

在用global定义变量时,需要在每一个用到此变量的callback下,都定义一次这个变量。
比如说,你调用的变量名称是aa
那么凡是有用到aa变量的callback程序下,都要用global定义aa,即是global aa(只在GUI的m程序里定义就可以了)
__________________
追求卓越,完善自我
tpwxhfh 当前离线   回复时引用此帖
旧 2009-04-27, 11:10   #7
ctgu2004
初级会员
 
注册日期: 2008-05-07
年龄: 38
帖子: 19
声望力: 17
ctgu2004 正向着好的方向发展
默认 回复: 在GUI中数据的传递

定义成global变量,在这个变量的出现地方和所有需要使用的地方都定义成global就可以了
ctgu2004 当前离线   回复时引用此帖
回复


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

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


相似的主题
主题 主题作者 版面 回复 最后发表
【求助】请问谁有matlab工具箱应用方面的书? casc42 MATLAB论坛 5 2008-09-22 16:53
matlab udp怎么用 急啊 wjabcjw MATLAB论坛 3 2008-06-24 12:40
求助图形颜色设置 李湖胜 MATLAB论坛 0 2008-05-24 15:39
[求助]菜鸟求助用matlab产生chirp雷达信号及雷达回波的相关资料 zpclff MATLAB论坛 0 2008-04-21 18:48
【求助】如何在plot画图中输入上下标 Constantine MATLAB论坛 1 2008-01-16 19:02


所有时间均为北京时间。现在的时间是 13:44


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