パラメータを設定し、それらのパラメータを別の m-File で使用するための GUI を作成しました。GUI で作成された変数は、入力変数から m-File への別のワークスペースにあることを知っています。そのため、私は を使用しようとしていますglobal variables
が、うまくいきません: 変数は空の m-File に移動します。
私は、ユーザーがこのコードを使用してパラメーター (0 または 1) を設定できる 3 つの編集ボックスを持つ GUI を持っています (1 つの編集ボックスのみのコードを示しています)。
function density_Callback(hObject, eventdata, handles)
% hObject handle to density (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of density as text
% str2double(get(hObject,'String')) returns contents of density as a double
global density
density = str2double(get(hObject, 'String'));
global Variavel_1
assignin('base', 'Variavel_1', density);
m-File は、次のコードを使用して GUI ボタンから呼び出されます。
function calculate_Callback(hObject, eventdata, handles)
% hObject handle to calculate (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
test %m-File that uses variables set in GUI
そして、m-ファイルはVariavel_1
、このコード (test.m) の残りの編集ボックスからこれと他のものを使用する必要があります。
global Variavel_1
global Variavel_2
global sum
Variavel_1
Variavel_2
sum = Variavel_1 + Variavel_2
しかし、私が持っているのは、これらすべての変数が空です! (このコードを GUI コード内に配置できることはわかっていますが、これは本当の提案ではありません。これは、合計するこの単純な m ファイルがはるかに複雑になるため、m ファイルに移動する変数が必要になるためです)。
Variavel_1 = []
Variavel_2 = []
Sum = []
グローバル変数が失敗する理由を誰でも理解できますか?
前もって感謝します!