1

私は今日、私が書いたスクリプトの GUI を Matlab で作成するよう (私の教授から、ありがとうございました) 任務を受けました。このスクリプトは、いくつかの値を設定する (テキスト ファイルから読み取る、操作する、変数に割り当てる) ために使用され、次に 3 つの関数を呼び出して実際に何かを計算し、プロットをファイルに出力します。

GUI ですべての入力セクションを作成する必要があります。出力はそのままでよいと思います (計算が長いので、せっかちな人のためにプログレス バーを表示するものは何もありません)。

私はすべてのハンドル、hObject などにかなり混乱しています。誰かが私を案内してくれることを願っています。

これが私がこれまでにしたことです:

私がシミュレートするオブジェクトにはいくつかのレイヤーがあり、これらには 2 つのプロパティ、厚さ、および光学関数があります。「テキストの編集」に太さを入力し、プッシュボタンでファイルを読み込みます。

    % --- 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 を取得する方法を教えてください。私の理解では、ハンドル構造体はすべての 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 に答える