【问题标题】:Matlab: Question regarding dataset()Matlab:关于数据集()的问题
【发布时间】:2011-05-11 15:19:25
【问题描述】:

我的工作区中有大约 50 个元素(1 列字符数组)。有没有办法将所有这些元素放入一个单独的数据集中,而无需明确解决每个元素。我有一个变量 x,它列出了所有元素名称。我已经尝试了很多东西,但似乎没有任何效果。在这种情况下, dataset() 的帮助也没有帮助。希望在我最终看到一些结果之前,有人可以帮助我解决最后的障碍。

【问题讨论】:

    标签: matlab dataset


    【解决方案1】:

    如果我理解正确,您的工作区中有 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   
    

    【讨论】:

      【解决方案2】:

      这是一个示例,展示了如何使用一个名称标记所有元素。

      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  
      

      【讨论】:

      • 谢谢,唯一的问题是我的元素实际上是单独的变量。这就是导致所有问题的原因。
      猜你喜欢
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 2019-11-18
      • 2011-07-09
      • 2011-07-25
      相关资源
      最近更新 更多