MATLAB - 关闭FOR循环时数据丢失

时间:2017-06-27 18:11:19

标签: matlab for-loop

我在使用循环计算a中的白色像素时出现问题 一块图像,并存储总白色像素和y和x 该部分在图像中的位置,每个都在自己的阵列上。

当我在循环中打印值时,它可以正常工作,但是正确 在循环之后,3个数组用零填充。

有人可以帮忙吗?

鳕鱼:

y = zeros(altura*largura);
x = zeros(altura*largura);
v = zeros(altura*largura);


for j=0:altura-1
    for k=0:largura-1

        pedaco = f8(j*40+1 : j*40+40, k*40+1 : k*40+40); %binary piece
        pedac = im2uint8(pedaco);
        totalBrancos = sum(sum(pedac)); %sum white pixels

        pos = altura*j+k+1;

        y(pos) = j;
        x(pos) = k;
        v(pos) = totalBrancos;

        disp(y(pos)); %works
        disp(x(pos)); %works
        disp(v(pos)); %works

    end
end  

disp(y); %all zeros
disp(x); %all zeros
disp(v); %all zeros

1 个答案:

答案 0 :(得分:0)

你的零号调用是通过(altura largura)矩阵创建一个(altura largura),我不认为你通过计算位置来保存数据是你想要的/ p>

如果是这种情况,请尝试

y = zeros(1, altura*largura);
x = zeros(1, altura*largura);
v = zeros(1, altura*largura);

可以将单个索引用于多索引矩阵,但是pos计算不正确。