2013-05-17 58 views
0

我有一個名爲bin_this的變量的單元數組。我需要遍歷它,訪問每個變量,將該變量中的數據分組,並將分箱數據放入新創建的變量中。 所以如果數組包含a,b,c ....等。 我需要在不破壞舊的如何遍歷變量的單元數組並對其中的每一個執行操作?

+0

你的意思單元陣列或結構數組?結構數組有字段名稱。單元格陣列不。 – Molly

回答

0

創建一套新的離散化變量 a_bin,b_bin,c_bin等 如果您的數據是一個單元陣列,這裏是如何循環吧:

bin_this = {[1, 2, 3, 4],[5, 6, 7, 6],[1, 2, 3, 7]} % example data 
s = size(bin_this) 

binnedResults = cell(s); 
for t = 1:s(2) 
    data = bin_this{t}; % access data 
    binnedData = hist(data); 
    binnedResults{t} = binnedData; %store data 
end 

如果你的數據是一個結構數組,並且要字段添加到它,這裏是如何做到這一點:

bin_this = struct('a', [1, 2, 3, 4], 'b', [5, 6, 7, 6], 'c', [1, 2, ... 
        3, 7]); 
newFields = struct('a','a_bin','b','b_bin','c','c_bin'); % define the new field names 


fields = fieldnames(bin_this); % get the field names from bin_this 
for t = 1:length(fields) 
    f = fields{t}; 
    data = bin_this.(f); % get the data with a particular field name 
    binnedData = hist(data); 
    newField = newFields.(f); % get the new field name 
    bin_this.(newField) = binnedData; % add the binned data to the original structure with 
            % a new field name. 
end 
+0

感謝您的回答莫莉!單元格數組實際上包含變量的名稱。我需要打開變量。將它們包含的數據裝入bin(使用hist(data,xcenters)),然後將新裝入的數據放入新變量中。假設我的單元格數組叫做bin_this。它包含變量的名稱。所以bin_this包含a,b,c,d,e,f ...等。 (變量名稱)。我需要打開a,b,c ...等。並將它們中的每一個都分別存儲,然後將它們重新分配給新變量a_bin,b_bin等。我必須在不破壞a,b等的情況下執行此操作。(原始變量) – Sean

+0

打開變量,是否打開.mat文件?或者這些變量是否已經存在於工作場所? – Molly

相關問題