0

我正在读取一个文件(逐行),并将其作为 <1x175 单元格> 返回。这是一个计算量很大的大文件,所以我把它分成几部分。我知道预分配会加速我的代码,所以我创建了一个数组来存储文件中的数据。

warning('off','MATLAB:NonScalarInput');
dataInput = cell(NumOfPartitions,(1:175));      

我过去在没有警告的情况下完成了这项工作:输入参数必须是标量。但我忘记了我是如何做到的......这似乎有效,但我觉得它可能不明智。这是它的样子;

dataInput <8,1 cell> =
<1x175 cell>   *<1x175 cell>*  ... <1x175 cell>  

所以如果我 dataInput(2) 它将返回第二个<1x175 cell>

4

2 回答 2

1

像这样的东西怎么样:

dataInput = cell([NumOfPartitions 175]);

这将形成一个 8x175 的单元格排列。我认为那应该仍然能够包含您的所有数据...不过我有点困惑,因为您在问题中同时引用了 125 和 175 。

您收到警告的原因是您试图将数组 ( 1:125) 传递给cell函数。您实际上是在要求 MATLAB 创建一个大小为 (8, 1, 2, 3, 4, ... 125) 的元胞数组。哪个 MATLAB 猜测不是您想要做的。这是正确的!

于 2012-07-13T15:49:38.107 回答
0

要预分配单元格数组,您可以使用以下命令:

你可以这样做:

CellArray = cell(Height, Width);
于 2012-07-13T15:48:38.243 回答