我正在读取文件(逐行),并将其作为< 1x175单元格>返回。这是一个包含大量计算的大文件,因此我将其拆分为多个部分。我知道preallocating会加速我的代码,所以我创建了一个数组来存储我的文件数据。
warning('off','MATLAB:NonScalarInput');
dataInput = cell(NumOfPartitions,(1:175));
我过去做过这项工作而没有警告:输入参数必须是标量。但是我忘记了我是怎么做的......这似乎有用但我觉得它可能不明智。这是它的样子;
dataInput <8,1 cell> =
<1x175 cell> *<1x175 cell>* ... <1x175 cell>
因此,如果我是dataInput(2),它将返回第二个&lt; 1x175 cell&gt;
答案 0 :(得分:1)
这样的事情怎么样:
dataInput = cell([NumOfPartitions 175]);
这将使8x175单元格排列。我认为应该仍然可以包含你的所有数据......我有点困惑,因为你在你的问题中提到了125和175.
您收到警告的原因是您尝试将数组(1:125
)传递给cell
函数。您有效地要求MATLAB创建一个大小为(8,1,2,3,4,... 125)的单元阵列。哪个MATLAB猜测不是你想要做的。这是对的!
答案 1 :(得分:0)
要预先分配单元格数组,您可以使用:
你可以这样做:
CellArray = cell(Height, Width);