Arrays matlab重新排列(排列)字符串数组

Arrays matlab重新排列(排列)字符串数组,arrays,matlab,Arrays,Matlab,我有一个字符串数组: size(entries) ans = 1 19413 我想将数组重新排列为4853行和4列: output=permute(entries,[4853 4]); 但得到以下错误: 使用排列顺序时出错包含无效的排列索引 我做错了什么(可能很明显)?谢谢您目前有19413个元素,但您希望将其重新塑造为一个由4853*4=19412个元素组成的4853*4矩阵。世界上没有任何函数可以帮助您做到这一点,因为元素的原始数量和目标数量不匹

我有一个字符串数组:

size(entries)

 ans =

            1       19413
我想将数组重新排列为4853行和4列:

output=permute(entries,[4853 4]);
但得到以下错误:

使用排列顺序时出错包含无效的排列索引


我做错了什么(可能很明显)?谢谢

您目前有19413个元素,但您希望将其重新塑造为一个由
4853*4=19412个
元素组成的
4853*4
矩阵。世界上没有任何函数可以帮助您做到这一点,因为元素的原始数量和目标数量不匹配-它们相差一个元素。如果你移除其中一个元素…说。。。最后一个,那么我们就有进展了

假设您犯了一个错误,并且意外地包含了那个额外的元素,那么您在这里不使用
permute
,而是使用。
重塑
的第二个参数是为每个目标维度展开的元素数量,这就是您要寻找的。首先删除数组末尾出现的无关元素,然后重塑矩阵:

output = reshape(entries(1:end-1),[4853 4]);

我迟到了3年,但我要为仍在寻找答案的人干杯

在上述情况下,是的,您应该使用
重塑()
,同时注意保留元素的总数

当您想要对n维(ND)矩阵的维度进行重新排序时,可以使用
permute()

ORDER
参数指定列的顺序

例如,如果矩阵A是LxMxN,那么下面的行将使其成为MxLxN

A = permute(A,[2 1 3]);

希望这能澄清问题。

改用
重塑
。很明显,你没有阅读文档。我删除了
排列
标签。它指的是R中的包。