Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2012-07-14
帖子: 1
声望力: 0 ![]() |
![]()
先把自己的部分代码贴出来:
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 请见谅。。。 |
![]() |
![]() |