如何在MATLAB表格中仅重命名少数变量?

3
我希望生成一张表格,但只想为一个变量设置变量名称,而其他所有变量则保持它们的名称。
例如,假设我有以下数据:
User1 = rand(5,1);
User2 = rand(5,1);
User3 = rand(5,2);

我现在可以使用以下代码创建表格:

table(User1 , User2 , User3(:,1))

这给我带来了这个:
ans = 

 User1       User2        Var3  
________    ________    ________

 0.55229    0.049533     0.14651
 0.62988     0.48957     0.18907
0.031991     0.19251    0.042652
 0.61471     0.12308      0.6352
 0.36241     0.20549     0.28187

我想获取这个:
ans = 

 User1       User2        User3  
________    ________    ________

 0.55229    0.049533     0.14651
 0.62988     0.48957     0.18907
0.031991     0.19251    0.042652
 0.61471     0.12308      0.6352
 0.36241     0.20549     0.28187

我尝试做了这个:

我尝试做了这个:

table(User1 , User2 , User3(:,1), 'VariableNames',{'','','User3'} )

但是这会产生错误:
Error using setVarNames (line 33)
The VariableNames property must be a cell array, with each element containing one nonempty
string.

Error in table (line 305)
            t = setVarNames(t,vnames); % error if invalid, duplicate, or empty

我该如何解决MATLAB 2014b的问题?
我的数据是在循环中生成并制成表格,我想保留所有d的值。如果这对问题有影响,请指教。

2个回答

5
根据MATLAB关于table数据类型的文档,您可以通过修改表格的VariableNames属性来实现此目标。
使用示例表格T
T = table(rand(3, 1), rand(3, 1), rand(3, 1));

您可以按数字索引变量:

T.Properties.VariableNames{2} = 'Middle_Column' 
T.Properties.VariableNames(2:3) = {'Middle_Column', 'End_Column'} 

或者您可以使用 table 的隐式字符串比较来使用字符串索引:

T.Properties.VariableNames{'Var2'} = 'Middle_Column'
T.Properties.VariableNames({'Var2', 'Var3'}) = {'Middle_Column', 'End_Column'}

或者你可以重新分配整个东西:

T.Properties.VariableNames = {'Start_Column', 'Middle_Column', 'End_Column'}

-3

那不是我想要的。你基本上重命名了所有变量。我只想重命名一个变量,但还是谢谢。 - EkEhsaas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接