#include

#include

#include
"matlib.h"

using namespace
std;

int main()

{

initM(MATCOM_VERSION);     
//初始化Matcom C++矩阵库,当与exitM()同时使用,否则会造成内存泄露

Mm
a;     
//创建矩阵a

Mm
b;     
//创建矩阵b

Mm
x;     
//创建矩阵x

a = rand(3,
3);     
//随机产生一个3×3的矩阵

b = zeros(3, 3);     
//生成一个全零矩阵,并赋值给b

b.r(1, 1) =
1;     
//矩阵b的第一行第一列赋值为1

b.r(2, 2) =
3;     
//矩阵b的第二行第二列赋值为3

b.r(3, 3) =
5;     
//矩阵b的第三行第三列赋值为5

cout
<< "a=:"
<< endl;

display(a);     
//输出矩阵a

cout
<< "b=:"
<< endl;

display(b);     
//输出矩阵b

x = a + b;

cout
<<
"a+b=:\n";

display(x);

cout
<<
"矩阵a的行列式值为:" << endl;

display(det(a));     
//输出矩阵a的行列式

cout
<<
"矩阵b的行列式为:" << endl;

display(det(b));     
//输出矩阵a的行列式

cout
<<
"x矩阵的遍历:" << endl;

for (int i = 1; i <= x.rows();i++)

{

for (int j = 1; j <= x.cols();j++)

{

cout
<<
setiosflags(ios::fixed)
<< setprecision(2)
<< setw(6)
<< x.r(i, j);

}

cout
<<
"\n";

}

exitM();

return 0;

}

直接在vs当中运行此代码不能通过编译会报错,错误如下:

1>------ 已启动生成: 
项目: matcom, 配置: Debug Win32 ------

1> 
源.cpp

1>d:\matcom45\lib\matlib.h(2867):
error C2375: “abs”: 重定义;不同的链接

1>         
d:\program files (x86)\microsoft visual studio
12.0\vc\include\math.h(1025) : 参见“abs”的声明

========== 生成: 
成功
0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

通过错误我们知道是函数abs发生了重定义,定位到matcom的matlib.h头文件当中

#if !defined(_MSC_VER) |
(_MSC_VER>=1100)

m_type DLLI abs(m_type
x);

#endif

注释掉该定义

#if !defined(_MSC_VER) |
(_MSC_VER>=1100)

//m_type DLLI abs(m_type
x);

#endif



返回vs重新编译程序,发现编译能够成功,运行结果:

c++与matcom混合编程的更多相关文章

  1. VC 与Matlab混合编程之引擎操作详解

    Visual C++ 是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便. Matlab 是一款将数值分析.矩阵计算.信 ...

  2. matlab和c++混合编程---matlab和vs的环境配置问题及方法和步骤(转载)

    matlab和c++混合编程---方法和步骤 matlab和c++混合编程---matlab和vs的环境配置问题 摘要:Matlab具有很强的数值计算和分析等能力,而C/C++是目前最为流行的高级程序 ...

  3. matlab混合编程向导(vc,vb,.net...)

    一.matlab与vc混编  1.通过mcc将matlab的m文件转化为cpp,c文件或dll供vc调用:     这方面的实现推荐精华区Zosco和ljw总结的方法(x-6-1-4-3-1和2)  ...

  4. 如玫瑰一般的PHP与C#混合编程

    故事背景是这样的,有一套项目,服务器端是用C#写的,为了完成某种事情,它需要使用到一个组件,这个组件很小但很重要,很不巧的是,这个这个组件是用PHP语言写的,如果为了使用这个组件而专门搭建一个PHP的 ...

  5. C和C++混合编程中的extern "C" {}

    引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: 1 2 3 4 5 6 7 8 9 #ifdef __cplusplus extern "C" { #endif ...

  6. C# 托管和非托管混合编程

    在非托管模块中实现你比较重要的算法,然后通过 CLR 的平台互操作,来使托管代码调用它,这样程序仍然能够正常工作,但对非托管的本地代码进行反编译,就很困难.   最直接的实现托管与非托管编程的方法就是 ...

  7. [转载:]C#与Fortran混合编程之本地调用Fortran动态链接库

    前言 C#发展到现在,已是一门相当完善的语言,他基于C语言风格,演化于C++.并依靠强大的.NET底层框架.C#可以用来快速构建桌面及Web应用.然而在我们的实际工作中,尽管C#已经非常完善,但还是不 ...

  8. C#Matlab混合编程类 初始化问题解决方法

    ************** 异常文本 ************** System.TypeInitializationException: “myPlus.matClass”的类型初始值设定项引发异 ...

  9. 国内第一部C#.Net调用Matlab混合编程视频教程

       本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 Matlab和C#混合编程文章目录:[目录]Matlab和C#混合编程文章目录 一.视频说明 2014年的5.1,我将这套视频教 ...

随机推荐

  1. P1347 排序 (拓扑排序,tarjan)

    题目 P1347 排序 解析 打开一看拓扑排序,要判环. 三种情况 有环(存在矛盾) 没环但在拓扑排序时存在有两个及以上的点入度为0(关系无法确定) 除了上两种情况(关系可确定) 本来懒了一下,直接在 ...

  2. Java 之 Maven 常用命令

    一.Maven 常用命令 在 cmd 中可以通过一系列的 maven 命令对我们的 maven 工程进行编译.测试.运行.打包.安装和部署. 1.compile 命令 compile 是 maven ...

  3. JavaWeb 之 Filter 敏感词汇过滤案例

    需求: 1. 对day17_case案例录入的数据进行敏感词汇过滤 2. 敏感词汇参考 src路径下的<敏感词汇.txt> 3. 如果是敏感词汇,替换为 *** 分析: 1. 对reque ...

  4. Android为TV端助力之:maxWidth设置无效

    android:maxWidth用过几次,之前有效,今天再用就无效了.其实是有两个注意点的,记录下: 1. android:adjustViewBounds="true" 2.an ...

  5. Spring+Velocity+Mybatis入门(step by step)

    一.开发工具 开发过程中使用的操作系统是OS X,关于软件安装的问题请大家移步高效的Mac环境设置. 本文是我对自己学习过程的一个回顾,应该还有不少问题待改进,例如目录的设置.编码习惯和配置文件的处理 ...

  6. 在Linux系统上安装Spring boot应用

    Unix/Linux 服务 systemd 服务 操作过程 1. 安装了JDK的centOS7虚拟机 注意下载linux版本JDK的时候不能直接通过wget这种直接链接下载,否则会解压不成功,应该打开 ...

  7. Keystore Problem: Cannot convert COMBINED of type class java.lang.String to class org.jivesoftware.openfire.spi.ConnectionType

    go to: Server Manager -> System Properties Search for "xmpp.socket.ssl.client.keypass" ...

  8. Linux必知必会--curl

    你有多自律,你就能走多远~ --久节奏.慢读书 Curl命令 学习每个linux命令都该掌握man命令.(可以使用man命令去查看每个命令的使用说明) curl命令是一个利用URL规则在命令行下工作的 ...

  9. Webmin<=1.920 RCE 漏洞复现

    0x00 前言 本来前一阵就想复现来着,但是官网的版本已经更新了,直到今天才发现Docker上有环境,才进行了复现 0x01影响版本 Webmin<=1.920 ​ 0x02 环境搭建 dock ...

  10. Kotlin中Range与异常体系剖析

    好用的集合扩展方法: 下面来看一下对于集合中好用的一些扩展方法,直接上代码: 如果我们想取出集合中的第一个值和最后一个值,用Java方式是get(0)和get(size-1),但是在Kotlin中提供 ...