0

私は工学部の学生で、MATLAB にはかなり慣れていません。指定された回路の電圧とアンペア数を計算するクラスの GUI を作成しました。アンペア数を (A) と (mA) で表示したいと思います。現在、プログラムはデータを計算し、静的テキスト ボックスに表示します。内部に 2 つのラジオ ボタンがあるボタン グループを使用しており、排他的に動作しています。selectionChangeFcnボタンを制御するために次の方法で使用しました。

function group_SelectionChangeFcn(hObject, eventdata, handles)

switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
    case 'radiobutton1'
        var=1;
        set(handles.text1, 'String', '(A)');
    case 'radiobutton2'
        var=1000;
        set(handles.text1, 'String', '(mA)');
    otherwise     
end

いずれかのボタンを選択すると、静的テキスト ボックス内のテキストが変更され、変数に値が割り当てられます。プログラミング コードの大部分は、プッシュボタンで実行されます。すべての変数はこのコードに含まれており、編集ボックスから入力されます。これまでのところ、他のすべてがうまく機能しています。(A) または (mA) をスタティック テキスト ボックスに出力したケースでは、ボタンを操作すると実際に異なる値が表示されることがわかります。私の問題はこれです。コードで変数を使用varして回答データを乗算し、A または mA で読み取るようにしたいと考えています。このような;

set (handles.text36,'string',num2str(ir1*var,'%20.3f'))

これを機能させることはできませんが、var が未定義であるというエラーが表示されます。あらゆる状況でこれを行うようです。コードを別の場所に移動してみましたが、機能しません。ヘルプやアイデアをいただければ幸いです。

4

3 に答える 3

0

これらの記事を読むことで利益が得られるかもしれません:

http://www.mathworks.de/de/help/matlab/matlab_prog/base-and-function-workspaces.html http://www.mathworks.de/de/help/matlab/creating_guis/ways-to-manage -data-in-a-guide-gui.html#f5-998711

var他の GUI 関数からアクセスできる場所に保存する必要があります。

1 つの例: たとえば、handles 構造の一部として、最初の関数を変更して保存varします。

% set var as a field on handles
handles.var = 1000;
% save the guidata - don't miss this!
guidata(hObject, handles);

var2 番目の関数では、ハンドル構造から取得できる var を使用することになっています。

set(handles.text36,'string',num2str(ir1*handles.var,'%20.3f'))
于 2013-11-12T14:46:31.413 に答える