循环的循环只返回第一次迭代的结果

3视图(30天)
你好,
我用这些循环从多个与粒子的体积。每个迭代f是一个单独的与。表“结果”的属性为每个有意者和“results_total”结合的结果。表“结果”也有不同的行数与每个迭代。
我想做第二个循环也一样,在“j”给出了粒子数确定在每个图片和卷(j)我得到每个粒子的体积。像我一样上面我想保存结果中所有与“Vol_total”但我从第一个与得到的值,所以f = 1加2次。例如在第一与第二111年,有141个粒子和Vol_total返回一个双阵列282 x1代替252 x1。
我如何更改代码,以得到正确的结果?谢谢你!
Vol_total =表;
f = 1:2
从一个文件夹%粒子在每个与被分析和一些特性测量
%来简化有意者的数量= 2
%代码的计算结果
结果= regionprops (“表”lm2,“区域”,“周长”,“MinFeretProperties”,“MaxFeretProperties”);
results_total = vertcat(结果,results_total);
j = 1:高度(结果)
卷(j) =总和(V (lm2 = = j));% V是每个像素的体积和lm2 labelmatrix显示的像素属于同一粒子
结束
Vol_total = [Vol_total;卷的);
结束

接受的答案

darova
darova 2021年8月14日
尝试preallocate 变量之前 循环。 有大小141第一次迭代后,这就是为什么你有282个元素吗
卷=表(大小(结果));
j = 1:高度(结果)
卷(j) =总和(V (lm2 = = j));% V是每个像素的体积和lm2 labelmatrix显示的像素属于同一粒子
结束
你应该在两个方向的体积和价值。不知道你为什么不有一个错误在这条线
% (j) =和卷(V (lm2 = = j));% V是每个像素的体积和lm2 labelmatrix显示的像素属于同一粒子
v1 = V (lm2 = = j);
卷(j) =总和(v1 (:));%和所有元素
1评论
保罗Costache
保罗Costache 2021年8月15日
卷=双(高度(结果));
j = 1:高度(结果)
v1 = V (lm2 = = j);
卷(j) = (v1)总和;
结束
Vol_total = [Vol_total;卷的);
谢谢你的提示。工作但我不得不离开了指数从v1,我收到了一个错误。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!