function Y = iterative_LTSA(data,d,K,max_iterate_time,errors)
[D,N] = size(data); % D是输入样本点的维数. N是输入样本个数
indexs=zeros(N,K);
% Step 0: Neighborhood Index(k-d method)
%if nargin<4 %如果输入参数个数<4
NI = cell(1,N); %产生一个1*N的空单元数组
if D>N
a = sum(data.*data); % .* 用于矩阵中对应元素的相乘,并且竖向相加
dist2 = sqrt(repmat(a',[1 N]) + repmat(a,[N 1]) - 2*(data'*data)); %计算距离
for i=1:N
% Determine ki nearest neighbors of x_j
[dist_sort,J] = sort(dist2(:,i)); %sort 对dist2 进行排序,dist_sort 返回对每列排序后的结果
%J返回的是排序后矩阵中每个数在矩阵未排序前每列中的位置(即索引值)
indexs(i,:)=J(1:K);
Ii = J(1:K); %i个近邻点
NI{i} = Ii; %放进单元数组N中
end;
else % m<=N
for i=1:N
% Determine ki nearest nei
LTSA 改进版本,和经典LTSA类似
最新推荐文章于 2020-11-26 14:05:22 发布