C++ 读取 MATLAB 的 .m 文件,并发送到 MATLAB 运行
本代码是由「Microsoft Visual Studio 2015 Enterprise」编写。
想要了解更多 C++ 与 MATLAB 混合编程的知识,可以参考我的另一篇博客:C++ 与 MATLAB 混合编程总结
代码用到的头文件自己记得添加,包括 string、vector 等,这里只是主体代码。别忘了最主要的 engine.h
//打开MATLAB引擎
Engine *matlabEngine; //定义MATLAB引擎指针
if (!(matlabEngine = engOpen(NULL))) //测试是否启动Matlab引擎成功
{
cout << "Can't start Matlab engine!" << endl;
exit(1);
}
//读取文件中有效命令到"matlabCode",并发送到MATLAB
ifstream fin;
fin.open("voronoiData.m", ios_base::in);
string matlabCode;
string buf;
string zhuShi = "%"; //** 用于查找是否有注释
string::size_type index;
while (getline(fin, buf))
{
if (buf.empty()) //跳过文件中的空行
{
fin.clear();
buf.erase(); //遇到空行,输入流被阻断,需要重置,以便后续读取
}
else //判断某行是否有注释,如果有,去掉注释内容
{
index = buf.find(zhuShi); //查找该行是否有注释,依据MATLAB注释关键字"%"定位
if (index == string::npos)
{
buf += ";";
matlabCode += buf;
buf.erase();
}
else
{
string temp(buf, 0, index); //去掉注释内容
buf.erase();
temp += ";";
matlabCode += temp;
}
}
}
engEvalString(matlabEngine, matlabCode.c_str()); //命令发送到MATLAB
fin.close(); //关闭文件
C++ 读取 MATLAB 的 .m 文件,并发送到 MATLAB 运行的更多相关文章
- 把一个文件中所有文件名或者文件路径读取到一个txt文件,然后在matlab中读取
链接: http://blog.csdn.net/dreamgchuan/article/details/51113295 dir /on/b/s 这个读取的是这样的格式:
- MATLAB读取和保存nifti文件
介绍 分析核磁数据时,数据的读取和保存是两个基本的操作.虽然大部分工具包都对这些功能进行了封装,但是如果你不了解如何使用这些工具包或者说当前的任务太简单不值得去使用这些庞大的工具包的时候就需要我们自己 ...
- 通过文件读写方式实现Matlab和Modelsim的联合仿真
虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足.而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处 ...
- Matlab的部分文件操作
Author:Maddock Date:2015-01-20 判断文件是否存在 infilename = [str,'\lena.jpg']; sgc_exist = exist(infilename ...
- matlab 中txt文件(含字符及数值)处理
matlab 中txt文件(含字符及数值)处理 (2008-08-02 09:45:12) 转载▼ 标签: 杂谈 分类: matlab及C学习 Matlab文件操作及读txt文件ZZ 2008-07- ...
- python读取并写入mat文件
用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); save matData.mat 用python3读取并写入 ...
- linux系统使用sh文件传参数给matlab程序
linux系统下使用sh文件传参数给matlab程序 (1)编写sh文件 程序以下面的行开始(必须在文件的第一行): #!/bin/sh 定义需要传递的参数,用双引号引起,参数之间使用逗号或分 ...
- Android 读取手机联系人、拨号、发送短信及长按菜单的操作
本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...
- Matlab获取一个文件夹下所有文件名
Matlab获取一个文件夹下所有文件名: fileFolder=fullfile('D:\MATLAB\bin\trc'); dirOutput=dir(fullfile(fileFolder,'*. ...
随机推荐
- 图书检索系统C版本
原创,转载请注明出处! 程序具有一下功能窗口界面1,Input输入(读入文件,所有的文件都读入)2,Output输出(检验是否读取正确,从结构体数组读入)3,Length统计(此文件里有110本图书) ...
- 使用for循环签到嵌套制作直角三角形
注意代码的运行顺序: for(i = 0 ; i<9 ; i++){ for(j = 0 ; j<i-1 ; j++){ document.write("*")//** ...
- Html结构标准
< ! doctype html> 声明文档类型 <html> 根标签 <head> 头标签 <title></title> 标题标签 &l ...
- P4218 [CTSC2010]珠宝商
P4218 [CTSC2010]珠宝商 神题... 可以想到点分治,细节不写了... (学了个新姿势,sam可以在前面加字符 但是一次点分治只能做到\(O(m)\),考虑\(\sqrt n\)点分治, ...
- Laravel模型事件的实现原理详解
模型事件在 Laravel 的世界中,你对 Eloquent 大多数操作都会或多或少的触发一些模型事件,下面这篇文章主要给大家介绍了关于Laravel模型事件的实现原理,文中通过示例代码介绍的非常详细 ...
- 自定义设置jqGrid的标头居中加粗等
beforeRequest: function () { $("thead th").css("text-align", "center") ...
- Maven构建报错问题解决
[ERROR] Failed to execute goal on project zepeto-admin: Could not resolve dependencies -SNAPSHOT: Fa ...
- xadmin插件
from django.http import HttpResponse from xadmin.plugins.actions import BaseActionView class test(Ba ...
- 使用bert进行情感分类
2018年google推出了bert模型,这个模型的性能要远超于以前所使用的模型,总的来说就是很牛.但是训练bert模型是异常昂贵的,对于一般人来说并不需要自己单独训练bert,只需要加载预训练模型, ...
- MD5(3)
import java.io.UnsupportedEncodingException; import java.security.PrivateKey; import java.security.S ...