我是 MATLAB 新手,没有太多编程经验,所以我很困惑。
我需要创建一个文件,其中有两个函数(由于我有 GUI)和一个脚本。我需要在回调中使用我在脚本中声明的变量。
我的程序是一个专家系统。首先,我将规则声明为结构数组,然后执行算法。我不明白如何调用我的规则,这些规则应该在我的函数文件中的脚本文件中。
更新:
我确实明白这一点,但是我已经阅读了很多东西,但我仍然无法弄清楚。我有规则文件,如下所示:
rule(1).condition1='First condition';
rule(1).cond1ask=1;
rule(1).condition2='Second condition';
rule(1).cond2ask=1;
rule(1).conclusion='Conclusion';
rule(1).endmarker=1;
该文件包含±50个这样的声明。然后我有一个非常简单的 GUI,它应该在我按下按钮时运行一个算法。问题是:如何将文件与 GUI 函数、算法和文件与规则结合起来?如何从 GUI 文件中调用规则?
这是图形用户界面代码:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
global rule
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a1=rule(1).condition(1);
a1
然后我从脚本文件运行 GUI 文件,虽然界面加载正常,但当我按下按钮时,我收到错误消息:
不正确的索引矩阵参考。
ES_21112012 中的错误>pushbutton1_Callback(第 83 行)a1=rule(1).condition(1);
gui_mainfcn 中的错误(第 96 行) feval(varargin{:});
ES_21112012 中的错误(第 43 行)gui_mainfcn(gui_State, varargin{:});
@(hObject,eventdata)ES_21112012('pushbutton1_Callback',hObject,eventdata,guidata(hObject)) 中的错误
评估 uicontrol 回调时出错