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

在阅读这篇博文前,请大家先阅读我的上一篇博文,因为这篇博文的思路来自于我的上一篇博文,链接如下:

https://blog.csdn.net/wenhao_ir/article/details/51007255

下面直接说将C/C++程序的变量数据导入到MATLAB中的方法:

先上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中。
在这里,我们想利用从C/C++程序中导出的数据生成下面的矩阵:

1 2 3
4 5 6

源码如下:

%此程序用于学习如何把C++的变量数据导入到MATLAB中
%作者微信/QQ 2487872782
%有问题可以联系作者交流

fid=fopen('F:\material\data\123.txt','r');
[C1,count]=fscanf(fid,'%d',[3,2]);
C2=C1';%C2是C1的转置矩阵
fclose(fid);

上面的代码中,

为什么我们不把函数fscanf()的第三个参数直接写成[2,3]呢?

又为什么最终我们需要的矩阵C2要经C1转置得到呢?

这是因为MATLAB不管是导出矩阵到向量还是由向量导入矩阵,都是按列来进行的,即按从上到下,从左到右的顺序进行导出或填充的!

如果不明白这句话,大家看下C1和C2的内容截图就知道了。

值得注意的是,得到矩阵后,默认的是double类型,我们还应该根据我们的需要对矩阵的数据类型进行强制类型转换!比如C2=uint8(C2);这样的强制类型转换语句!

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值