声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1197|回复: 1

[综合讨论] 麻烦大家帮我看看这段代码是什么意思?

[复制链接]
发表于 2012-7-3 10:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  1. function iid = distmat(X,dmax)

  2. % constrained distance function
  3. % iid -> [rows, columns, distance]


  4. n     = size(X,1);%返回x的行数
  5. nrdim = size(X,2);%返回x的列数(实验变差函数的计算维数)
  6. if size(X,1) < 1000;
  7.     [i,j] = find(triu(true(n)));
  8.     if nrdim == 1;
  9.         d = abs(X(i)-X(j));
  10.     elseif nrdim == 2;
  11.         d = hypot(X(i,1)-X(j,1),X(i,2)-X(j,2));
  12.     else
  13.         d = sqrt(sum((X(i,:)-X(j,:)).^2));
  14.     end
  15.     I = d<=dmax;
  16.     iid = [i(I) j(I) d(I)];
  17. else
  18.     ix = (1:n)';
  19.     if nrdim == 1;
  20.         iid = arrayfun(@distmatsub1d,(1:n)','UniformOutput',false);
  21.     elseif nrdim == 2;
  22.         % if needed change distmatsub to distmatsub2d which is numerically
  23.         % better but slower
  24.         iid = arrayfun(@distmatsub,(1:n)','UniformOutput',false);
  25.     else
  26.         iid = arrayfun(@distmatsub,(1:n)','UniformOutput',false);
  27.     end
  28.     nn  = cellfun(@(x) size(x,1),iid,'UniformOutput',true);  
  29.     I   = nn>0;
  30.     ix  = ix(I);
  31.     nn  = nn(I);
  32.     nncum = cumsum(nn);
  33.     c     = zeros(nncum(end),1);
  34.     c([1;nncum(1:end-1)+1]) = 1;
  35.     i = ix(cumsum(c));
  36.     iid = [i cell2mat(iid)];
  37.    
  38. end

  39. function iid = distmatsub1d(i)
  40.     j  = (i+1:n)';
  41.     d  = abs(X(i)-X(j));
  42.     I  = d<=dmax;
  43.     iid = [j(I) d(I)];
  44. end

  45. function iid = distmatsub2d(i)  %#ok<DEFNU>
  46.     j  = (i+1:n)';
  47.     d = hypot(X(i,1) - X(j,1),X(i,2) - X(j,2));
  48.     I  = d<=dmax;
  49.     iid = [j(I) d(I)];
  50. end
  51.    
  52. function iid = distmatsub(i)
  53.     j  = (i+1:n)';
  54.     d = sqrt(sum(bsxfun(@minus,X(i,:),X(j,:)).^2,2));
  55.     I  = d<=dmax;
  56.     iid = [j(I) d(I)];
  57. end
  58. end
复制代码
回复
分享到:

使用道具 举报

发表于 2012-7-11 23:59 | 显示全部楼层
5.建议提问的网友分清 编程问题 和 专业问题 http://forum.vibunion.com/thread-36746-1-1.html
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 03:38 , Processed in 0.061998 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表