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

全栈工程师开发手册 (作者:栾鹏)

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[n])
			{
				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;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯AI架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值