全栈工程师开发手册 (作者:栾鹏)
matlab2c动态链接库下载
matlab库函数大全
matlab2c基础教程
matlab2c开发全解教程
matlab2c调用方法:
1、下载动态链接库
2、将Matlab2c.dll拷贝到exe同目录下
3、将Matlab2c.h、Matlab2c.lib放到项目头文件目录下
4、在cpp文件中引入下面的代码
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
matlab中unique函数简介
1、unique函数:
去掉集合中重复的元素
2、用法说明
[ C,IA,IC ] = unique(A)
IA为矩阵C中的元素在矩阵A中的位置,
IC为矩阵A中的元素在矩阵C中的位置
unique的c++源码实现
取集合的单值元素
输入:集合a
输出:集合指针,第一个集合表示集合a去除重复元素后的集合排序,第二个集合是新集合元素在原集合a中的位置,第三个集合为原集合a元素在新集合中的位置。
提示:位置下标从0开始
Matrix* Matlab2c::unique(Matrix& a)
{
bool exist=false;
vector<double> c;
Matrix *p;
p = new Matrix[3];
for (int j=0;j<a.row*a.column;j++)
{
exist=false;
for (int n=0;n<c.size();n++)
if (a.data[j]==c[n])
{
exist=true;
break;
}
if (!exist)
c.push_back( a.data[j]);
}
Matrix ia(1,c.size());
Matrix ib(1,a.row*a.column);
Matrix tmp(c,1,c.size());
Matlab2c::Q_sort(tmp); //快速排序
for (int i=0;i<a.row*a.column;i++)
{
for (int j=0;j<tmp.row*tmp.column;j++)
{
if(a(i)==tmp(j))
{
ia(j)=i;
ib(i)=j;
}
}
}
*p = tmp;
*(p+1)=ia;
*(p+2)=ib;
return p;
}
unique函数的使用测试
#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;
int main()
{
double a[]={1,1,2,4,4,3};
Matrix aa=Matrix(1,6,a);
Matrix* cc=Matlab2c::unique(aa);
cout<<(*(cc+0)).toString()<<endl;
cout<<(*(cc+1)).toString()<<endl;
cout<<(*(cc+2)).toString()<<endl;
system("pause");
return 0;
}