2012-08-14 54 views
0

有沒有一種方法來分配文件名來設置使用GUI的變量?假設我有6個文件集,每個文件集包含4種顏色(藍色,綠色,黑色,紅色)。共有24個文件,所以我需要24個變量。我想設定varialbes是像分配多個文件來設置變量名稱的方法?

blue1 
green1 
nir1 
red1 

blue2 
green2 
nir2 
red2 

etc... 

目前我正在試圖使用指南創造一個自定義的圖形用戶界面,允許用戶選擇他們想要的文件,並讓它們分配給某些變量。我正在考慮沿着24個popupmenus附加到文件目錄並允許用戶選擇他們想要的文件,然後它將分配該文件和它的路徑到一個變量(例如blue1),我也想24個複選框,與if語句

比方說popupmenu1與可變藍天航空公司和checkbox1

if checkbox1 == checked

do import

elseif checkbox1 == unchecked

相關關聯

fill with zeros

我已經創建了圖形用戶界面的基本框架,我就如何應用文件中進行選擇,然後關聯的if語句,等等

回答

0

如果你提前知道該變量的文件,這是bad practice(外觀也herehere)使用定義的變量名這樣的字符串:

var1name = 'blue'; 
var2name = 'red'; 
% etc. 

% load data 
datablue=rand(4,1); 
datared =rand(4,1); 

% assign 
eval([var1name '1 = datablue(1);']); 
eval([var2name '1 = datared (1);']); 
% etc. 
eval([var1name '2 = datablue(2);']); 
eval([var2name '1 = datared (2);']); 
% etc 

它更容易,更好地只使用一個普通的數組,給定變量名稱不變或應用程序依賴,在我的例子中,我已經有databluedatared

,如果你想用戶定義的變量名的另一種選擇是使用array of structs

var1name = 'blue'; 
var2name = 'red'; 
sample(1).(var1name) = datablue(1); 
sample(1).(var2name) = datared (1); 
% ... 
sample(2).(var1name) = datablue(2); 
sample(2).(var2name) = datared (2); 

嘗試下列出來,只有當你有一個很好的理由,訴諸0​​!

0
for k = 1:6 
blue(k) = sprintf('blue%d', k); 
green(k) = sprintf('green%d', k); 
nir(k) = sprintf('nir%d', k); 
red(k) = sprintf('red%d', k); 
end 

這將創建只是不清楚你的變量名稱。然後,您可以使用assignin(我相信)或eval將值設置爲變量名稱。