我想知道如何获取某些输入并将它们放在单元格数组中的多行中... 我基本上想要一个在ever循环中每行更新一个输入的数组。 循环循环30次,所以我希望有30行和2列(x和y列)
我有这段代码:
For N=1:30
.
.
.
Binary = bwlabel(blacknwhite);
s = regionprops(Binary,'centroid');
centroids = cat(1, s.Centroid);
hold(imgca,'on')
plot(imgca,centroids(1,1), centroids(1,2),'r*')
.
.
.
end
我不认为这样做我想要的......只有第一行在我的循环中更新.. 那么我该如何创建这个单元格数组呢?
如果您想了解更多信息,请告诉我,我会立即更新。
谢谢!
答案 0 :(得分:1)
已经晚了,所以这不是一个完整的答案:
你想做什么?您是否尝试一次构建一个Nx2阵列?如果你是,那么你应该:
newArray = zeros(N,2)
。newArray(N,:) = newValues
,其中newValues是1x2数组。对我来说,你的代码片段没有使用数组索引N
,这很奇怪。您是否正在尝试构建单元阵列或数组?
答案 1 :(得分:1)
我假设您要存储质心。在这种情况下,您应该使用centroids(N,:)=cat...
。另外,正如@High Performance Mark所说,你应该预先分配数组。
centroids = zeros(30,2); %# this assumes 1 centroid per image.
For N=1:30
.
.
.
Binary = bwlabel(blacknwhite);
s = regionprops(Binary,'centroid');
centroids(N,:) = cat(1, s.Centroid);
hold(imgca,'on')
plot(imgca,centroids(N,1), centroids(N,2),'r*')
.
.
.
end