Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我正在寻找有关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) (ie using mask 3x3 elements) B(i,j) = computeSth(H); %// compute something on selected elements and place it in B end end 因此,我不要求解决方案。我要一个好的教程,MATLAB中向量化循环的示例。我想学习如何做以及自己做。 回答: 这是我经常链接为该主题的参考的几个MathWorks教程: 这是Loren的博客文章之一,针对特定的示例问题提供了很好的代码矢量化演练: 您作为样本给出的特定类型的问题,涉及处理给定矩阵的子矩阵,可以根据您所执行的哪种操作以不同的方式将其向量化。您可能可以使用CONV2或FILTER2而不是嵌套的for循环。 图像处理工具箱中还有许多功能可以处理矩阵的邻域和块处理 ,例如NLFILTER和BLOCKPROC 。这些功能的文档应帮助您弄清楚如何使用它们作为矢量化代码的方式。 更多&回答... |
![]() |
![]() |