Я нашел три способа сделать это:
Метод 1: Использовать setappdata
и getappdata
примерно так:
setappdata(0,'some_var',value)
some_other_var = getappdata(0,'some_var')
Вы будете использовать setappdata () в m-файле для fig1 для хранения любых данных, которые вы хотите передать, а затем вызывать getappdata () в другом m-файле для его получения.Аргумент 0
для двух функций указывает корневое рабочее пространство MATLAB, которое доступно вашей программе везде (т. Е. Оно является глобальным).Таким образом, когда вы закроете свои цифры, эти данные будут по-прежнему доступны.Вы можете использовать rmappdata
для их удаления.
Метод 2: Использовать guidata
:
Предполагая, что вы создали свой GUI с GUIDE, у вас есть доступ к структуре с именем handles
, которая передается повсюду и которую вы можете редактировать, и вы можете сделать это с помощью обратного вызова GUI:
handles.some_var = some_value
guidata(hObject,handles)
Затем вы можете получить доступ к handles.some_var
в другом месте с помощью другого обратного вызова (поскольку handles
автоматически передается вам в него) в вашем другом m-файле:
some_other_var = get(handles.some_var)
Метод 3: Используйте UserData
:
Сохраните нужную переменную из вашей первой цифры:
set(name_of_fig, 'UserData', some_var)
Затем, чтобы получить ее от другой:
some_other_var = get(name_of_fig, 'UserData')
(Отказ от ответственности: мои настоящие знания о MATLAB не так уж велики, но они помогают найти хорошие ресурсы, такие как , и , и даже это из официальных документов . То, что я здесь написал может быть неправильным, поэтому вам обязательно следует обратиться к документации для получения дополнительной помощи.)