cell2mat太慢了

29次(最近30天)
道格拉斯蒋介石
道格拉斯蒋介石 2021年7月29日8:21
评论道: 道格拉斯蒋介石2021年7月31日13:58分
嗨,社区,
我试图从一个结构体中提取所有的姿势:
arrayfun(@(节点)(node.pose),节点,“UniformOutput”假)
它给了我这样的东西:
ans =
50×1细胞数组
{[-0.2232 6.2129 0.8631 -0.5050 0]}
{[-0.5066 5.4770 -0.9729 -0.2310 0]}
{[-0.2650 6.0300 0.7742 -0.6329 0]}
{[-0.0436 5.4497 0.7313 -0.6820 0]}
{[-0.0892 5.5517 -0.4583 0.8888 0]}
{[0.4760 6.0669 -0.3153 -0.9490 0]}
{[-0.5377 6.2957 0.9279 -0.3729 0]}
{[-0.6971 5.9071 -0.7730 -0.6344 0]}
...
但我希望它是这样的一个矩阵:
ans =
-0.2232 6.2129 0.8631 -0.5050 0
-0.5066 5.4770 -0.9729 -0.2310 0
-0.2650 6.0300 0.7742 -0.6329 0
-0.0436 5.4497 0.7313 -0.6820 0
-0.0892 5.5517 -0.4583 0.8888 0
0.4760 6.0669 -0.3153 -0.9490 0
-0.5377 6.2957 0.9279 -0.3729 0
-0.6971 5.9071 -0.7730 -0.6344 0
...
所以我用cell2mat:
cell2mat (arrayfun(@(节点)(node.pose),节点,“UniformOutput”假))
但是cell2mat函数在我的程序运行时中花费了大约50%的时间,它的运行速度变慢了很多。
有没有办法避免cell2mat有一个有效的运行时间?
谢谢

接受的答案

答案(1)

Yazan
Yazan 2021年7月29日8:31
要加快计算速度,只需避免使用结构数组。

s manbetx 845


释放

R2021a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!