У меня есть функция mapreduce, вывод которой должен быть передан другой функции mapreduce, код выглядит следующим образом
function clustering = parallel_clustering_kmeans(data)
%% find first clustering from all chunks
result = mapreduce(data,@k_means_Mapper,@k_means_Reducer);
result = readall(result);
index = result{:,1};
index = cell2mat(cellfun(@str2num,strrep(index,',',' '),'un',0));
clustering = mapreduce(data,@k_means_Mapper_second,@k_means_Reducer);
end
Первая функция работает хорошо result = mapreduce(data,@k_means_Mapper,@k_means_Reducer); однако я хочу передать индекс в качестве параметра для k_means_Mapper_second
Код должен быть следующим
function k_means_Mapper_second(data,index,intermidiateValuesOut)
distance = zeros(size(data,1),size(index,1));
parfor i = 1:size(data,1)
for j = 1:size(index,1)
distance(i,j) = sum((data(i,:)-index(j,:)).^2).^0.5;
end
end
for i = 1:size(distance,1)
x = distance(i,:);
[~,ind] = min(x);
key = combine_values(data(i,:));
addmulti(intermidiateValuesOut,key,ind);
end
end
Мой вопрос: как я могу передать индекс в качестве параметра функции k_means_Mapper_second в последней строке
clustering = mapreduce(data,@k_means_Mapper_second,@k_means_Reducer);
заранее спасибо