我从这个问题中了解到的是,您有一个数据存储在子文件夹中的 .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
代码应该可以工作,现在我在家,无法测试,对不起。
我更喜欢脚本解决方案,将变量从一个工作区分配到另一个工作区可能会导致代码的支持和扩展出现问题(突然创建变量而您看不到它们来自何处)。下面是一些如何动态访问结构字段的示例。