我不太清楚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