在matlab中使用不同大小的字段生成结构

时间:2015-11-18 23:36:01

标签: matlab

我试图生成一组关于一组图像的信息,所以我创建了一个结构数组,如下所示,

resultsInfo = struct('img_index',0,'correlated',cell(1,5),'correlationFactor',zeros(1,5),'ImgSum',zeros(640,480));

其中:img_index是表示图像的整数,correlated是包含相关图像名称的单元格,correlationFactor是表示图像相似程度的数字,而imgSum是相关图像的总和。

我想在for循环中以动态方式创建数组,但代码只生成每个元素的第五个imageSums

如何启动结构以使用零矩阵填充数组的所有元素?

1 个答案:

答案 0 :(得分:0)

请定义以下方法:

function resultStruct = CreateEmptySruct ()
    resultStruct.img_index = 0  ;
    resultStruct.correlated  = cell(1,5);
    resultStruct.correlationFactor = zeros(1,5);
    resultStruct.ImgSum = zeros(640,480) ;
end

然后在For循环中调用此方法,如下所示:

for i = 1 :5
    structArray(i) = CreateEmptySruct () ;
end

但是,您也可以通过传递函数参数来单独为每个结构设置任何值。