0

我有一个名为 bin_this 的变量元胞数组。我需要遍历它,访问每个变量,将数据分箱到该变量中,然后将分箱数据放入新创建的变量中。因此,如果数组包含 a、b、c....等。我需要创建一组新的分级变量 a_bin、b_bin、c_bin 等,而不破坏旧变量

4

1 回答 1

0

如果您的数据是一个元胞数组,以下是循环它的方法:

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
于 2013-05-17T22:38:05.213 回答