现在有一个结构体pixel,pixel用于存储矩阵A中的标记、元素的个数和位置。
A=[1,0,2,2;1,2,0,2;1,1,2,0];
h = size(A);
pixel.count = 0;
pixel.label = 0;
pixel.coordinate=[0,0];
a = 1;
c = 0;
flag = 1;
for i = 1:h(1)
for j = 1:h(2)
if A(i,j) ~= 0
t = A(i,j);
b = 1;
while(pixel(b).label>0) %用于判断pixel中是否存储了标记为t的信息
express =(pixel(b).label ~=t);
switch express
case 0
flag = 0;
break;
case 1
flag = 1;
b = b+1;
break;
end
if flag ==0
break;
end
end
if flag ==0 %表明pixel中存储了标记为t的信息
pixel(b).count = pixel(b).count +1;
pixel(b).coordinate(pixel(b).count,1) = i;
pixel(b).coordinate(pixel(b).count,2) = j;
elseif flag ==1 %表明pixel中未存储了标记为t的信息
pixel(b).count = 1;
pixel(b).label = t;
pixel(b).coordinate(pixel(b).count,1) = i;
pixel(b).coordinate(pixel(b).count,2) = j;
end
end
end
end
运行结果显示pixel(1)中存储的是正确的余项结果,但pixel(2)中存储的不是预期结果,明明有4个2,但pixel(2).count=1.
请问大侠这是怎么回事?同样的代码块,为什么当A(i,j)=2时,结果不是预期的呢?
这是运行结果:
>> pixel(1)
ans =
count: 4
label: 1
coordinate: [4x2 double]
>> pixel(2)
ans =
count: 1
label: 2
coordinate: [3 3]
请大侠帮忙分析下原因,不胜感激!