【问题标题】:matlab table timestep calculationmatlab表时间步计算
【发布时间】:2018-01-23 19:33:28
【问题描述】:

有没有无需输入table_name.VariableName (:,:) 即可访问列数据的方法?我需要从数据的时间戳中找到增量时间。这是我到目前为止所做的:

[u,v]=size(a);
b=cell2table(cell(u,1));

for i=1:u
   if i==1
       b(i,1)={'0'};
   else
       b(i,1)=(datenum(a.PCTimestamp_None_(i,1)) ...
           -datenum(a.PCTimestamp_None_(i-1,1)))+str2double(b{i-1,1});
   end
end

我遇到的问题是,时间戳总是在第 1 列中。所以我正在寻找一种方法来访问数据,只需提及第一列而不是变量名。

任何帮助将不胜感激。

【问题讨论】:

标签: matlab datetime cell


【解决方案1】:

您可以使用花括号来为您的表建立索引,而无需指定与目标列关联的变量名称。花括号还可用于更直接地分配/检索内部单元格值。

[u,v] = size(a);

b = cell(u,1);
b{1} = 0;

for i = 2:u
    b{i} = (datenum(a{i,1}) - datenum(a{i-1,1})) + b{i-1};
end

b = cell2table(b);

【讨论】:

    【解决方案2】:

    表变量可以通过索引作为t.(1)以及名称访问

    t = table(ones(3, 1), rand(3, 1), 'VariableNames', {'foo', 'bar'});
    assert(isequal(t.bar, t.(2)));
    

    【讨论】:

      猜你喜欢
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多