问题标签 [pre-allocation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 如何在 MATLAB 中预分配非数字向量?
我经常发现自己在做这样的事情:
哪个,虽然功能,不是最佳的 -processedData
向量在循环内增长。甚至mlint
警告我,我应该考虑预先分配速度。
如果数据是 的向量int8
,我可以这样做:
并修改循环以填充向量槽而不是连接。
有没有办法预先分配一个向量,以便它可以随后保存结构或对象?
更新:受Azim 回答的启发,我只是颠倒了循环顺序。正如调试器确认的那样,首先处理最后一个元素会强制在第一次命中时预分配整个向量:
这要求由 MATLAB 返回的任何对象process()
都具有有效的零参数构造函数processedData
,因为 MATLAB在第一次使用真实对象写入它时进行初始化。
mlint
仍然抱怨可能的数组增长,但我认为那是因为它无法识别反向循环迭代......
arrays - Matlab中的预分配数组?
我正在使用一个简单的for
循环来裁剪大量图像,然后将它们存储在一个单元格数组中。我不断收到消息:
该变量
croppedSag
似乎在每次循环迭代时都会改变大小。考虑预分配速度。
我之前在 MATLAB 中编码时已经多次看到这一点。我一直忽略它,我很好奇如果我有 10,000 张或更多图像,预分配会增加多少运行时间?
另外,我在文档中阅读了有关预分配的信息,它说要用于此zeros()
目的。我将如何将它用于下面的代码?
我没有完全按照文档中的示例进行操作。
javascript - 使用计数预分配记录
我读过记录的预分配可以提高性能,这应该是有益的,尤其是在处理时间序列数据集的许多记录时。
我有点担心必须通过承诺可能会减慢速度,并且可能每次都检查计数会否定预先分配记录的性能优势。
有没有更高效的方法来处理这个问题?
r - 从 read.csv 逐步追加数据
我想通过读取每个月的每一天的 csv 文件来构建一个数据框。我的每日 csv 文件包含相同行数的字符、双精度和整数列。我知道任何给定月份的最大行数,并且每个 csv 文件的列数保持不变。我使用 fileListing 循环浏览一个月中的每一天,其中包含 csv 文件名列表(例如,对于 1 月):
抱歉修改了我的问题,因为我发现了它的一部分(duh),但是我应该使用 rbind 逐步在数据框的底部插入数据,还是很慢?
谢谢你。
BSL
filesystems - 在 ext4 中禁用 prealloc
我需要禁用prealloc
ext4 中的功能。但是没有一个名为disprealloc
. 我想知道是否有任何方法可以禁用 prealloc 功能。
在这方面的任何建议将不胜感激
python - 在python中初始化64 x 64 numpy的(0,0)元组?
是否可以创建任意数据结构的 numpy,例如元组?如果是,我如何在不写出来的情况下初始化它?(显然,我不想写出 64 x 64 数组)
matlab - 如何在matlab中存储字段变量进行预分配
我通过附加值将在for循环中计算的字段变量存储在向量中,但是我想先预分配性能。我试图对这个操作进行矢量化,但它并没有给我想要完成的任务。我已经把操作的例子放在下面。我该如何进行预分配?为了速度。
matlab - 为什么 matlab 会警告预分配每个循环都会重置的变量?
我的程序中有一个单元格变量,Matlab 警告要预先分配它。代码的简单形式是这样的:
首先我想知道为什么a
应该预先分配,因为它在每个循环中都会被重置。其次,我不知道如何预先分配它。当我尝试这样做时,Matlab 给了我另一个警告,说“变量似乎是预分配的,但这里不推荐预分配”。
我在循环之前使用此代码:
更加具体:
b
如果条件不成立,我想成为一个 1x1 元胞数组,所以我需要a
在每个循环中重置为一个空 var。
更新:
我找到了一种方法,由李的回答暗示,但仍然不知道为什么。使用a = [a(:),{'def'}];
而不是a = [a,{'def'}];
解决警告。