1

今天我的任务(由我的教授,谢谢先生)在 Matlab 中为我编写的脚本创建一个 GUI。该脚本用于设置一些值(从文本文件中读取、操作、分配给变量),然后调用三个函数来实际计算一些东西并将绘图打印到文件中——我猜这很简单。

我现在必须在 gui 中制作所有输入部分,我猜输出可以保持原样(计算很长,所以没有什么可以显示可能不耐烦的进度条)。

我对所有的句柄、hObject 等都很困惑,希望有人能指导我。

这是我到目前为止所做的:

我模拟的对象有几层,它们有两个属性,厚度和光学功能。我在“编辑文本”中输入厚度并使用按钮加载文件。

    % --- Executes on button press in load_cathode.
function load_cathode_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile('*.txt');
loaddata = fullfile(pathname,filename);
cathode_nk=load(loaddata); handles.cathode = [cathode_nk(:,1)'; cathode_nk(:,2)'.^2-cathode_nk(:,3)'.^2+2*i*cathode_nk(:,2)'.*cathode_nk(:,3)'];
%assignin('base','cathode',cathode_nk)

对于 EditText

function d_cathode_Callback(hObject, eventdata, handles)
handles.d_cathode=str2double(get(hObject,'String'));

我会这样做几次,最后得到几个句柄。命名事物和handles.d_名称

我如何继续使用这些数据来实际调用我的软件的功能部分,以及当我按下最后一个按钮时如何获取 EditText。据我了解,handles 结构在所有 GUI 上共享,对吗?

感谢到目前为止阅读的任何人,如果有人可以帮助我,特别感谢!

克里斯

4

1 回答 1

0

使用这个模板:

function d_cathode_Callback(hObject, eventdata, handles);
%in main file make empty struct handles= guihandles(gcf); guidata(gcf, handles);
%and load struct in function
handles = guidata(hObject);
%body ...
handles.d_cathode=str2double(get(hObject,'String'));
%save changes
guidata(hObject, handles);
%now use the same way to access to handles.d_cathode in other function
于 2013-03-14T08:06:59.297 回答