私は 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 ファイルからルールを呼び出すにはどうすればよいですか?
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 コールバックの評価中にエラーが発生しました