我不太清楚matlab的矢量化思維方式,主要是由於文檔中提供的簡單示例,我希望有人能幫助我更好地理解它。向量化代碼
所以,我試圖完成的是從ncols x nrows x ielements的矩陣中取NxN的樣本,並計算每個元素的平均值並存儲平均值的最大值。使用for循環,代碼將如下所示:
for x = 1+margin : nrows-margin
for y = 1+margin : ncols-margin
for i=1:ielem
% take a NxN sample
sample = input_matrix(y-margin:y+margin,x-margin:x+margin,i)
% compute the average of all elements
result(i) = mean2(sample);
end %for i
% store the max of the computed averages
output_matrix(y,x)=max(result);
end %for y
end %for x
任何人都可以做一個很好的向量化的這種情況的例子嗎? T
你應該看看'conv2'或'filter2'函數。 – 2012-03-19 14:36:48
我會,但有沒有其他的方式來矢量化這種類型的代碼,而不使用像conv2或filter2這樣的函數,並使用更多的矩陣索引? – VisLab 2012-03-19 14:45:09