У меня есть MATLAB GUI
, который дает пользователю возможность поставить галочку. Каждый тик имеет разное математическое значение. После того, как пользователь отметит что-то, расчет будет выполнен после того, как он нажмет «Рассчитать».
Моя основная формула под кнопкой Рассчитать:
effective_weight = weight + pilotsw + fo_weight %pilots weight & first officer's weight
pilots_weight
& fo_weight
имеют разные флажки и имеют следующий код:
function checkbox2_Callback(hObject, eventdata, handles)
% hObject handle to checkbox2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox2
% --- Executes on button press in checkbox3.
if (get(hObject,'Value') == get(hObject,'Max'))
pilotw = -100
else
pilotw = 0
end
Global pilotw (и то же самое для флажка первых офицеров)
И pilotw - глобальная переменная для функции вычисления.
Цель состоит в том, чтобы изменить эффективный вес и соответственно выполнить остальные вычисления, присутствует ли пилот (или нет).
2 ответа
Чтобы получить доступ к глобальной переменной pilotw
, вам необходимо объявить ее как таковую в своей функции:
function checkbox2_Callback(hObject, eventdata, handles)
%'Declare global variable'
global pilotw
%'Set global variable'
if get(hObject,'Value') == get(hObject,'Max')
pilotw = -100
else
pilotw = 0
end;
end
Вам нужно объявить global pilotw в каждой функции, в которой вы хотите использовать эту переменную.
Похожие вопросы
Новые вопросы
matlab
MATLAB - это высокоуровневая языковая и интерактивная среда программирования для численных расчетов и визуализации, разработанная MathWorks. Не используйте оба тега [matlab] и [octave], если явно не задан вопрос о сходстве или различии между ними. При использовании этого тега, пожалуйста, укажите версию MATLAB, с которой вы работаете (например, R2017a).