Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2012-07-14, 20:19   #1
小me
初级会员
 
小me 的头像
 
注册日期: 2012-07-14
帖子: 1
声望力: 0
小me 正向着好的方向发展
默认 matlab 处理大数据 请高人帮忙看下如何优化算法

先把自己的部分代码贴出来:

for i=1:R
num=1;
for j=1:R
dis=norm(vertex(:,i)-vertex(:,j));
%vertex为一个3×R的数组,每一列是一个空间点坐标
if dis<2*scale
dis_r(num)=dis;
%将第i点的scale邻域内所有点分别与第i点的距离存入一维数组
point(num)=j;%将第i点的scale邻域内所有点的序号存入数组point
num=num+1;
end
end

Cmean_r1=Cmean(point);
%Cmean为一个数组,存着每一个点的曲率值
%按照序号,将以上所有点的曲率提出
Cmean_r=Cmean_r1';
sum1=sum(Cmean_r.*exp(-(dis_r.^2)/(2*scale^2)));
sum2=sum(exp(-(dis_r.^2)/(2*scale^2)));
gs(i)=sum1/sum2;
end


理解起来很简单,很直白,
但是因为R的数值非常大,大概17万多个点吧,所以循环次数尤其的多,
请问该怎么加快速度?

初学matlab 请见谅。。。
小me 当前离线   回复时引用此帖
回复


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

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



所有时间均为北京时间。现在的时间是 07:17


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