我強烈建議不要使用非結構化變量。首先做像「迭代所有圖像」這樣的操作是非常困難的,其次你可以用一個變量名覆蓋一個函數名的奇怪問題。相反,我會使用具有動態字段名稱或地圖的結構。帶有Map的解決方案可以提供所有可能的文件名。
動態字段名:
dirlisting=dir('.jpg');
for imageIX=1:numel(dirlisting)
%cut of extension:
[~,name,~]=fileparts(dirlisting(imageIX).name);
allImages.(name)=imread(dirlisting(imageIX).name);
end
您可以allImages.person001
或allImages.(x)
地圖訪問一個結構圖像:
allImages=containers.Map
dirlisting=dir('.jpg');
for imageIX=1:numel(dirlisting)
%cut of extension:
[~,name,~]=fileparts(dirlisting(imageIX).name);
allImages(name)=imread(dirlisting(imageIX).name);
end
您可以使用allImages('person001')
一個Map訪問圖像。使用地圖不需要剪切文件擴展名。
您可以使用dir()檢索目錄的內容。 您基本上正在尋找動態變量名稱生成,因此請嘗試genvarname()。繼續這兩個功能應該是非常簡單的。 –
太棒了,我必須記住這個功能。謝謝。 – Reanimation