【发布时间】:2011-05-11 15:19:25
【问题描述】:
我的工作区中有大约 50 个元素(1 列字符数组)。有没有办法将所有这些元素放入一个单独的数据集中,而无需明确解决每个元素。我有一个变量 x,它列出了所有元素名称。我已经尝试了很多东西,但似乎没有任何效果。在这种情况下, dataset() 的帮助也没有帮助。希望在我最终看到一些结果之前,有人可以帮助我解决最后的障碍。
【问题讨论】:
我的工作区中有大约 50 个元素(1 列字符数组)。有没有办法将所有这些元素放入一个单独的数据集中,而无需明确解决每个元素。我有一个变量 x,它列出了所有元素名称。我已经尝试了很多东西,但似乎没有任何效果。在这种情况下, dataset() 的帮助也没有帮助。希望在我最终看到一些结果之前,有人可以帮助我解决最后的障碍。
【问题讨论】:
如果我理解正确,您的工作区中有 50 个变量,所有变量的名称都存储在变量 x 中(我假设它是一个 50 元素的元胞数组)。下面的示例(只有 3 个变量)说明了如何将一组变量放入一个 dataset:
>> var1 = ['a'; 'b'; 'c']; %# A 3-by-1 character array
>> var2 = ['d'; 'e'; 'f']; %# A 3-by-1 character array
>> var3 = ['g'; 'h'; 'i']; %# A 3-by-1 character array
>> x = {'var1'; 'var2'; 'var3'}; %# The variable names in a 3-by-1 cell array
>> varData = cellfun(@eval,x,'UniformOutput',false) %# Collect the variable data
%# in a cell array
>> data = num2cell([varData x],2); %# Combine the variable data with the
%# variable names and collect each pair
%# in an additional cell array
>> ds = dataset(data{:}) %# Pass the data to dataset as a comma separated list
ds =
var1 var2 var3
a d g
b e h
c f i
【讨论】:
这是一个示例,展示了如何使用一个名称标记所有元素。
elems={'abc';'def';'ghi'};
d=dataset({elems,'NAME'})
d =
NAME
'abc'
'def'
'ghi'
如果您想为每个元素分配不同的标签(存储为元胞数组),下面是一个示例,说明如何:
elems={'abc';'def';'ghi'};
names={'NAME1';'NAME2';'NAME3'};
data=cellfun(@(x){elems{x},names{x}},num2cell(1:length(elems)),'UniformOutput',false);
d=dataset(data{:})
d =
NAME1 NAME2 NAME3
abc def ghi
【讨论】: