質問から私が理解しているのは、サブフォルダーの .mat-file にデータが保存されていて、それを何らかの初期化に使用したいということです。後でベース ワークスペースからそれらを使用することが予想される場合、1 つの可能性は、関数をスクリプトに変更することです。
%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
コードは動作するはずです。今は家にいるのでテストできません。申し訳ありません。
あるワークスペースから別のワークスペースに変数を割り当てると、コードのサポートと拡張に問題が発生する可能性があります (突然変数が作成され、それらがどこから来たのかわかりません)。構造体のフィールドに動的にアクセスする方法の例をいくつか次に示します。