MATLAB中union函数的C++实现
来源:互联网 发布:javascript 取2位小数 编辑:程序博客网 时间:2024/06/07 13:17
MATLAB的union函数是将两个向量合并,同时去除重复元素,并按顺序排列。
而C++ STL中的set_union仅仅是将向量合并,即没有去重,也没有按序排列。
所以需要在set_union的基础上进行处理:
以float类型的向量为例:
float* A; float* B;//两个向量
int numA, numB;//两个向量的长度
//先排序
std::sort(A,A+numA);
std::sort(B,B+numB);
vector<float> v;
v.resize(numA+numB);//先按最大长度声明
vector<float>::iterator it;
it = set_union(A, A+numA, B, B+numB, v.begin()); //结果存在V里,但包含有重复元素
v.resize(it - v.begin());//去除多余元素,v中多余的位置存放0.0
//转换为float数组且统计数量
float* newarray = new float[v.size()];
int count = 0;
for(it=v.begin(); it!=v.end();++it)
{
newarray[count] = *it;
count++;
}
//对结果进行unique操作,清除相邻的重复值
float* index = unique(newarray, newarray + count);
//得到最终有效个数
int countnum = index - newarray;
float* C = new float[countnum]; //存放最后的结果
memcpy(C,newarray, countnum*sizeof(float));
- MATLAB中union函数的C++实现
- matlab中滤波器函数filter的C语言实现
- MATLAB中filter函数的C代码实现
- C语言实现Matlab中findpeaks函数
- C语言实现matlab的butter函数
- C中union的用法
- Matlab中实现函数的符号变量
- [Union]C语言编程中联合Union的学习
- matlab的函数conv()的C语言实现
- mcc函数实现matlab的m文件转化为c
- matlab 与C语言关于filter函数的实现
- c语言实现matlab上的filter函数
- C语言中Union类型的使用方法
- C语言中联合体union的使用
- C中Union的巧妙用法
- C语言中union的含义
- C/C++中union的使用
- C语言中联合体union的使用
- ACM 705. 回家(Dijkstra)
- 武汉三维一体胃肠检查
- Struts2原理
- Highcharts属性与Y轴数据值刻度显示Y轴最小最大值
- myeclipse debug "source not found" 解决办法
- MATLAB中union函数的C++实现
- Nsight Visual Studio Edition
- 百度手环开源 51822开发套件
- openfire主要插件介绍 -- 转载
- 《Python核心编程》第二章习题解答
- QueryUI Autocomplete插件使用入门详解(最新版)
- Shell公司性格测试
- linux下vi命令大全
- perl脚本调用shell命令后的结果比较总结