您的位置:首页 > 编程语言 > MATLAB

matlab2c使用c++实现matlab函数系列教程-intersect函数

2017-09-04 20:53 519 查看
全栈工程师开发手册 (作者:栾鹏)

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中intersect函数简介

1、intersect函数:

求集合的交集

2、用法说明

A=[1,1,2,4,4,3];

B=[1,2,5];

[H,m,n]=intersect(A,B); //H集合表示A和B集合的交集。m矩阵表示H中元素在A中的位置,n矩阵表示H中元素在B中的位置。

intersect的c++源码实现

求两个集合的交集

输入:集合a,集合b

输出:返回矩阵指针,第一个集合为a,b的交集,第二个集合为交集在集合a中的位置,第三个集合为交集在b中的位置。

提示:集合以一维矩阵的形式表示。返回位置时,下标从0开始

Matrix* Matlab2c::intersect(Matrix& a,Matrix& b)
{
vector<double> c;
vector<int> ia;
vector<int> ib;
Matrix *p = new Matrix[3];
for (int j=0;j<a.column;j++)
for (int n=0;n<b.column;n++)
if (a.data[j]==b.data
)
{
ia.push_back(j);
ib.push_back(n);
c.push_back(a.data[j]);
break;
}

*p = Matrix(c,1,c.size());
*(p+1)=Matrix(ia,1,ia.size());
*(p+2)=Matrix(ib,1,ib.size());
return p;
}


intersect函数的使用测试

#include "Matlab2c.h"
#pragma comment(lib,"Matlab2c.lib")
using namespace Matlab2c;

int main()
{
double a[]={1,2,3,4,5};
double b[]={1,2,5,6};
Matrix aa=Matrix(1,5,a);
Matrix bb=Matrix(1,4,b);
Matrix* cc=Matlab2c::intersect(aa,bb);
cout<<(*(cc+0)).toString()<<endl;
cout<<(*(cc+1)).toString()<<endl;
cout<<(*(cc+2)).toString()<<endl;
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: