Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 用matlab代替函数输入参数的循环

这是我的问题:

我有一个A = 1xN矩阵和B = 6xN矩阵我也有一个函数F = @(x,y)...

我想做的就是以每次F的输入参数为A(1,i)和B(:,i)的方式循环A和B的值

有没有一种方法可以针对所有值而不使用for循环来获取时间?

干杯



回答:

使用较新版本的MATLAB循环并没有您想象的那么昂贵。如果函数F是相对简单的东西,可以很容易地向量化,那么通常可以比使用for循环获得更快的性能,但是如果F表示一个相当复杂的操作,则实际上可能需要做更多的工作才能尝试解决问题。 。

不知道F实际作用,很难给您一个具体的答案。但是,除了对您的操作进行矢量化处理外,在某些情况下,还可以使用一些函数代替for循环。这些示例包括ARRAYFUNCELLFUNSTRUCTFUNBSXFUN

作为如何使用BSXFUN的示例 ,假设您正在执行的操作F涉及将B的每一列乘以A的相应列中的值。换句话说, C(:,i) = A(1,i).*B(:,i); i所有的。您可以使用BSXFUN进行以下操作:

C = bsxfun(@times,B,A);

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 01:19


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.