重新排列MATLAB表格变量(2016版)

wko9yo5t  于 2023-01-21  发布在  Matlab
关注(0)|答案(2)|浏览(148)

我在MATLAB中有一个表,变量标题等于:

titles = {'TZ_1', 'TZ_2', 'TZ_3', 'DATE'};

是否有办法移动或更改数据,使DATE位于TZ_1之前?

titles = {'DATE', 'TZ_1', 'TZ_2', 'TZ_3'};

2022版本中我可以看到movevars,但我目前运行的是2016版本。
任何帮助将不胜感激-我是相对较新的matlab。

mitkmikd

mitkmikd1#

你可以叫名字

% Set up example data
t = table(1,2,3,4, 'VariableNames',{'TZ_1', 'TZ_2', 'TZ_3', 'DATE'})
% Specify the column ordering you want
titles = {'DATE', 'TZ_1', 'TZ_2', 'TZ_3'};
% Rearrange the table
t = t( :, titles );

当然,您可以在没有中间变量的情况下执行此操作

t = t( :, {'DATE', 'TZ_1', 'TZ_2', 'TZ_3'});

分机号:
如果您只想将'DATE'放在最前面,而不管它当前在顺序中的位置,那么您可以执行以下操作

titles = [{'DATE'}, setdiff(t.Properties.VariableNames, {'DATE'}, 'stable')];
t = t( :, titles );
kmbjn2e3

kmbjn2e32#

是的,您可以使用索引来实现这一点(如果您查看movevars的实现,这正是它所做的)。

>> t = table(1,2,3,4, 'VariableNames',{'TZ_1', 'TZ_2', 'TZ_3', 'DATE'})
t =
  1×4 table
    TZ_1    TZ_2    TZ_3    DATE
    ____    ____    ____    ____
     1       2       3       4  
>> t(:,[4, 1:3])
ans =
  1×4 table
    DATE    TZ_1    TZ_2    TZ_3
    ____    ____    ____    ____
     4       1       2       3

相关问题