Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
这是我的问题:
我有一个A = 1xN矩阵和B = 6xN矩阵我也有一个函数F = @(x,y)... 我想做的就是以每次F的输入参数为A(1,i)和B(:,i)的方式循环A和B的值 有没有一种方法可以针对所有值而不使用for循环来获取时间? 干杯 回答: 使用较新版本的MATLAB循环并没有您想象的那么昂贵。如果函数F是相对简单的东西,可以很容易地向量化,那么通常可以比使用for循环获得更快的性能,但是如果F表示一个相当复杂的操作,则实际上可能需要做更多的工作才能尝试解决问题。 。 不知道F实际作用,很难给您一个具体的答案。但是,除了对您的操作进行矢量化处理外,在某些情况下,还可以使用一些函数代替for循环。这些示例包括ARRAYFUN , CELLFUN , STRUCTFUN和BSXFUN 。 作为如何使用BSXFUN的示例 ,假设您正在执行的操作F涉及将B的每一列乘以A的相应列中的值。换句话说, C(:,i) = A(1,i).*B(:,i); i所有的。您可以使用BSXFUN进行以下操作: C = bsxfun(@times,B,A); 更多&回答... |
![]() |
![]() |