用于存储单元格的单元格数组,无需警告

时间:2012-07-13 15:44:50

标签: arrays matlab cell cell-array

我正在读取文件(逐行),并将其作为< 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;

2 个答案:

答案 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);