我的照片中有一定数量的各种形状的斑点。我想将这些质心值存储在一个数组中以备将来使用。所以我尝试了以下代码,但它没有用。那么有人可以帮助我吗?
样品:
for i = 1:length(STATS)
centroid = STATS(i).Centroid;
array = zeros(length(STATS));
array(i) = centroid;
end
我想将质心数据存储在一个数组中,如下所示
array=
145 145
14 235
145 544
14 69
74 55
答案 0 :(得分:1)
尝试以下方法:
for i = 1:length(STATS)
array{i} = STATS(i).Centroid;
end
您可以使用以下方法打印整个阵列:
array{:}
您可以阅读有关单元格数组here的更多信息。此外,在旧代码中,您尝试将数组(Centroid
)分配给数组元素(array(i)
)。
答案 1 :(得分:1)
怎么样:
array=cell2mat({STATS.Centroid});
答案 2 :(得分:0)
假设
STATS(1).Centroid = [145 145];
STATS(2).Centroid = [14 235]; % Etc...
尝试:
array = reshape([STATS.Centroid],2,size(STATS,2))'
array =
145 145
14 235
145 544
14 69
74 55
这是如何运作的:
[STATS.Centroid]
是[STATS(1).Centroid, STATS(2).Centroid, .. STATS(n).Centroid]
的简短版本。这将为您提供值作为向量。然后使用reshape
使其达到您想要的大小。