这似乎是一个令人尴尬的简单问题,但我如何转换Matlab表向量呢?
为了简单地将列向量aTable
转换为行向量,我尝试了标准语法:
aTableT = aTable.';
aTableT = reshape(aTable, 1, height(aTable));
和
aTableT = rot90(aTable);
根据Mathworks,最后一个应该适用于表数组,请参见这里。但是,我得到了以下错误代码:
使用table/permute (第396行)未定义函数“permute”来输入类型为“table”的参数时出错。 rot90中的错误(第29行)B=置换(B,2 1 3:ndims(A));
注:fliplr
也没用。很确定我已经报道过明显的角度了-有什么想法吗?谢谢!
发布于 2014-07-25 04:09:40
尝试将表转换为数组,然后将其转换为表。换句话说,尝试这样做:
aTableArray = table2array(aTable);
aTableT = array2table(aTableArray.');
我也阅读了rot90
的文档,它说rot90
绝对应该适用于表,并且我得到了与您相同的错误。因此,由于transposing显然适用于数组/矩阵,因此让我们通过转换到矩阵、转换它,然后将其转换回表来快速解决问题。这对我有用!
发布于 2016-01-26 21:14:31
我用一些额外的方法扩展了table()
类,并修复了https://github.com/okomarov/tableutils中存在的一些问题。
针对这个问题,我定义了类似于矩阵的表的转置,即如果表每个单元格有一个值,并且所有变量(列)都属于同一个类,那么您可以使用my包转置表。
举个例子:
t = array2table(magic(4))
t =
Var1 Var2 Var3 Var4
____ ____ ____ ____
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> t'
ans =
Row1 Row2 Row3 Row4
____ ____ ____ ____
Var1 16 5 9 4
Var2 2 11 7 14
Var3 3 10 6 15
Var4 13 8 12 1
https://stackoverflow.com/questions/24947126
复制相似问题