matlab - MATLAB 中的矢量化简介 - 有什么好的教程吗?

标签 matlab loops vectorization

<分区>

我正在寻找有关在 MATLAB 中矢量化(循环)的任何好的教程。

我有一个非常简单的算法,但它使用了两个 for 循环。我知道对其进行矢量化应该很简单,我想学习如何做而不是向您询问解决方案。

但为了让您知道我遇到了什么问题,以便您能够推荐展示如何解决类似问题的最佳教程,这里是我的问题的概述:

B = zeros(size(A));    % //A is a given matrix.
for i=1:size(A,1)
   for j=1:size(A,2)
      H = ... %// take some surrounding elements of the element at position (i,j) (i.e. using mask 3x3 elements)
      B(i,j) = computeSth(H); %// compute something on selected elements and place it in B
   end
end

所以,我不是在寻求解决方案。我要的是一个很好的教程,MATLAB 中矢量化循环的示例。我想学习如何做并自己做。

最佳答案

以下是我经常链接到的一些 MathWorks 教程,作为有关该主题的引用:

这是 Loren 的一篇博客文章,其中对特定示例问题的代码矢量化进行了很好的演练:

您作为示例提供的特定类型的问题涉及处理给定矩阵的子矩阵,可以根据您正在执行的操作类型以不同的方式进行矢量化。您可以使用 CONV2FILTER2而不是嵌套的 for 循环。 Image Processing Toolbox 中还有许多函数那个句柄neighborhood and block processing of matrices ,例如 NLFILTERBLOCKPROC .这些函数的文档应该可以帮助您了解如何使用它们来向量化您的代码。

关于matlab - MATLAB 中的矢量化简介 - 有什么好的教程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2867901/

相关文章:

numpy - 根据行号更改 2d numpy 数组中行的每个第 n 个元素

c++ - 将 openMP simd 用于以下循环是否安全?

c++ - C++ 中的 Matlab 类型转换

MATLAB:组合和归一化具有不同样本大小的直方图

xml - 使用 xpath 计算 XML 中的元素数量

Mountain Lion 上的 Matlab 无法正常工作 -

javascript - 使用 for 循环和 indexOf 检查单词是否存在时出现标记错误

loops - MIPS 中的 While 循环(MIPS 初学者)

sql - 获取当前正在执行的 SQL Cursor 语句

c - 对于 float 是否有等效的 _mm_slli_si128(__m128i a, int num) ?