预分配输出大小未知的单元格

2次查看(最近30天)
乔尔Schelander
乔尔Schelander 2021年4月12日
评论道: 布鲁诺陈德良 2021年4月12日
我需要优化我的脚本。我可以做的一件事是预先分配,但是我的输出单元格的大小是未知的,所以我的问题是,它是否值得。
脚本的输出是X, X的大小未知。
现在我有:
X = {};
*我的脚本
X = nxn细胞
例如,如果输出单元格的大小为2x2,我可以这样做:
不确定它是否会提高我的脚本的速度
X =细胞(999);
*我的脚本
X = 999 x999细胞
*在某种程度上减少X的大小
X = 2 x2细胞
5个评论
布鲁诺陈德良
布鲁诺陈德良 2021年4月12日
1000万× 1000万的细胞?
我认为目前没有任何HW能够支持这一点。金宝app

登录评论。

接受的答案

布鲁诺陈德良
布鲁诺陈德良 2021年4月12日
编辑:布鲁诺陈德良 2021年4月12日
如果大小未知,一个好的方法是将预分配数组按指数增长。
而不是作业
X {i, j} =价值;
调用
X = gassign (X, i, j值);
在哪里 gassign 实现为遵循
函数X = gassign(X, i, j)
[m, n] =大小(X);
如果(i > m) || (j > n)
max(max(2*s,s+1),k);
X (gidx (m i), gidx (n, j )) = {[]};
结束
X {i, j} = val;
结束
然后完成后截断 X 清除未填充的单元格。
可以将X初始化为
X = {};

答案(1)

KSSV
KSSV 2021年4月12日
您可以尝试将它们初始化为
X = cell([],[]);
您可以使用时间检查 抽搐 toc

标签

下载188bet金宝搏


释放

R2017b

社区寻宝

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

开始狩猎!