Из этого вопроса я понимаю, что у вас есть данные, хранящиеся в .mat-файле в подпапке, и вы хотите использовать их для некоторой инициализации. Если вы планируете использовать их позже из базового рабочего пространства, то одной из возможностей будет изменение функции на скрипт:
%WHC_PROJECT_STARTUP
bdclose all;
load(fullfile('B', 'C', 'data_v2.0.mat'));
Я бы рекомендовал здесь использовать функцию
fullfile('B', 'C', 'data_v2.0.mat')
потому что это делает ваш код независимым от платформы (Linux использует '/', Windows '\'). Если вы хотите, чтобы содержимое .mat-файла загружалось в ваше базовое рабочее пространство, просто сохраните приведенный выше код как скрипт и выполните его.
Если вы настаиваете на том, чтобы прочитать файл в функции и использовать его позже в базовом рабочем пространстве, посмотрите на следующий код
function data_startup()
%WHC_PROJECT_STARTUP
bdclose all;
temp_data=load(fullfile('B', 'C', 'data_v2.0.mat')); % will be loaded as structure
file_variables=fieldnames(temp_data);% get the field names as cell array
for ii=1:length(file_variables)
% file_variables{ii} - string of the field name
% temp_data.(file_variables{ii}) - dynamic field reference
assignin('base', file_variables{ii}, temp_data.(file_variables{ii}));
end
Код должен работать, сейчас я дома и не могу его проверить, извините.
Я бы предпочел решение с использованием сценариев, поскольку назначение переменных из одного рабочего пространства в другое может привести к проблемам с поддержкой и расширением кода (внезапно создаются переменные, и вы не видите, откуда они берутся).
Вот несколько примеров как получить динамический доступ к полям структуры.