2011-04-28 260 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