已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。
上个月关门了。
Improve this question的
在MATLAB中,我有一个1x60单元阵列,其中每列是1x600000双精度。现在我的目标是把每个单元格作为一个列放在一个新的矩阵中。有人知道怎么做吗?
我尝试了很多次,但结果总是每列的矩阵1xsum。
已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。
上个月关门了。
Improve this question的
在MATLAB中,我有一个1x60单元阵列,其中每列是1x600000双精度。现在我的目标是把每个单元格作为一个列放在一个新的矩阵中。有人知道怎么做吗?
我尝试了很多次,但结果总是每列的矩阵1xsum。
1条答案
按热度按时间inn6fuwd1#
到目前为止,最好的选择是将数据存储为单元数组中的列,或者更好的是,存储为预分配的矩阵。如果这是不可能的,你还有几个选择。
问题:
给定一个单元数组
C
(我将使用一个有4个单元的数组,每个单元包含一个1x5的行向量):字符串
如果你尝试直接在这个单元数组上使用
cell2mat
,它会给予你一个长的行向量。重塑行向量:
您可以简单地将
cell2mat(C)
的结果从行向量整形为矩阵:型
转置单元数组:
通过转置单元格数组,可以将每个单元格转换为结果矩阵的一行。然后,您可以转置矩阵以使每个单元格成为一列:
型
转置每个单元格:
如果每个单元格都包含一个列向量,则
cell2mat
可以直接完成这项工作。您可以使用cellfun
来处理循环:型
(需要UniformOutput=false,因为我们的单元不是标量。
好的老循环:
cellfun
只是对我们隐藏了循环,所以我们可以在前面的方法中使用for
循环,但是如果我们已经循环了单元格,为什么不简单地将向量存储到输出矩阵中,而不是修改单元格数组呢?型