.mat ファイルに何千もの変数ストアがあります。一度に 1 つずつループにロードしています。x
次に、を使用して、ロードされた変数をワークスペース変数に割り当てますeval
。次に、ロードされた変数をクリアします。The current workspace already has too many variables
問題は、約 60,000 回の反復後にmatlab がエラーを出すことです。しかし、ワークスペースを確認すると、5 ~ 10 個の変数しか存在しないようです。
for i = 1:m
load(sprintf('feat_%s.mat', ids{i}), sprintf('feat_%s', ids{i}));
eval(sprintf('x = feat_%s;', ids{i}));
clear(sprintf('feat_%s', ids{i}));
end
これはコマンドに関係していると思いますeval
。eval
の複数のコピーを作成していると思いますx
。を使用して作成された変数をクリアする方法についてのアイデアeval
。