⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getuniquevals.m

📁 离散算法
💻 M
字号:
function [out_uniVals, out_uniCount] = getUniqueVals(in_values)
% 函数功能: 对输入的多维数组,按照某几列的值,取出不重复元素
%  注意:
%     只针对 Pareto 最优解集,即一旦某一列上有相同取值,其他列肯定也是相同取值
%     输入的数组,一行的所有元素都参与比较!!
%  输入:
%     in_values:   需得到不重复元素的多维数组,维数不限,整行的元素作为一个元素取值
%  输出:
%     out_uniVals: 不重复元素的第一个出现值,列数与输入相同,行数 <= 输入函数
%     out_uniCount:不重复元素的个数
valsCount = size(in_values, 1);

[stFit, idx] = sort(in_values(:, 1)); % 按 第一列 这一列升序排序
f_stValues = in_values(idx, :);              % 用 第一列 的游标顺序重排列 in_values

out_uniVals = [];
out_uniCount = 0;
inInd = 1;
curOPFun = f_stValues(inInd, :);
while (inInd <= valsCount)
	comInd = inInd + 1;
    goNext = 0;
	while ( (comInd <= valsCount) && (goNext == 0))
        if  (f_stValues(comInd,: ) == f_stValues(inInd, : )) 
            comInd = comInd + 1;
        else
            goNext = 1;
        end
	end
%     if (goNext == 1)
        out_uniVals = [out_uniVals; f_stValues(inInd, : )];     
        out_uniCount = out_uniCount + 1;
        inInd = comInd ;
%     end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -