2011-04-28 216 views
1

我想知道是否有人可以帮助我矢量化这些循环我有几次尝试,但一直未能提前感谢。matlab for循环矢量化

pixel_depth = 16; 
pixel_range = 2^pixel_depth -1; 

for i=1:height 

    for j=1:width 

     for k=1:gaussianComponents 

      mean(i,j,k) = rand*pixel_range; 

      weights(i,j,k) = 1/gaussianComponents; 

      pixelDeviation(i,j,k) = diviationNew; 

     end 

    end 

end 

感谢您的帮助....

回答

5
mean = rand(height, width, gaussianComponents) * pixel_range; 

weights = 1/gaussianComponents * ones(height, width, gaussianComponents); 

pixelDeviation = diviationNew * ones(height, width, gaussianComponents); 

注意mean是一个可变的名声,因为它会隐藏mean功能。

+0

我对matlab很新,所以这可能是一个简单的错误,谢谢你的回答我把它加入到matlab中,但它给了我一个错误,说repmat可能有很多参数,你能帮助解决这个错误吗? – user101010101 2011-04-28 10:52:50

+0

@user:哦,对不起,我的错误。看到我更新的答案。 – 2011-04-28 11:02:44

+1

在我看来,你想为每个重量赋值赋值相同的值,其中'weight = ones(height,width,gaussianComponents)* value'会做(像'pixelDeviation')。还要注意上面答案中的“mean”还没有被'pixelRange'缩放。 – 2011-04-28 11:06:39