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

将C/C++程序的变量数据导入到MATLAB中的方法!

2016-03-30 13:37 555 查看
欢迎大家加入图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别工作的朋友交流,我的QQ号2487872782

-----------------------------------------------

2016-5-21日:我发现自己真是傻,既然对象是图像,那何必把像素值导出来呢?直接将图像输出,然后MATLAB再读入图像不就可以了?

这篇博文随接上一篇博文:

将MATLAB的变量数据导入到VC中的方法!

下面直接说方法:

先上VC导出数据变量的代码:

#include <fstream>
using namespace std;
int main()
{   int a[6]={1,2,3,4,5,6};//注意:这里的类型一定要是int,如果设为char那用ocout<<a[i]输出来的全是字符!
unsigned char i;
ofstream ocout;
ocout.open("123.txt");
for(i=0;i<6;i++)
{
ocout<<a[i];
ocout<<" ";
}
ocout.close();
return 0;
}
很简单吧~

运行结果是:

123.txt中的内容为:

1 2 3 4 5 6

所以从VC中导出数据是很简单的,关键是怎样把数据导入到MATLAB中,并且还一气成为的成为M行N列的矩阵~

在这里,我们想利用从VC中导出的数据生成下面的矩阵:

1 2 3

4 5 6

源码如下:

clear all;
fid=fopen('123.txt','r');
[C,count]=fscanf(fid,'%d',[3,2]);
C=C';
fclose(fid);
要明白最后两行,关键还是要知道MATLAB不管是导出矩阵到向量还是由向量导入矩阵,都是按列来进行的!

运行以上程序,就得到了矩阵C,这个矩阵就是我们要的矩阵!

值得注意的是,得到矩阵后,默认的是double类型,我们还应该根据我们的需要对矩阵的数据类型进行强制类型转换!比如C=uint8(C);这样的强制类型转换语句!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: