c 与传递数据MATLAB,C与MATLAB的数据交互——通过记事本

最近正在做一个项目,源码使用C编写的,但是产生的数据需要画图,于是想到了MATLAB。

之前对MATLAB有一点了解,知道他可以和C/C++混合编程。但是上网一搜教程,显然已经超出了我的理解范围~

由于我仅仅是想用MATLAB画个图,于是我找到了一种更简单的方法——通过记事本进行数据交互。流程很简单:​在C编写的源程序中输出数据到文本文件,再通过MATLAB读取这个文件,然后绘图。

具体过程如下:

​1. 输出数据到文本文件

​简单的文件输入输出遵循以下几个步骤:

1. 打开文件

2. 写入/读取数据

3. 关闭文件​

这里以写入文件为例说明:

打开文件

FILE*

fp;​

//指向文件的指针

fp =

fopen("G:\\MATLAB\\data.txt",

"w");

//绑定文件

fopen用于大家一个文件,第一个参数是文件的名称,可以指定相应的目录,我让data.txt产生在G盘的MATLAB目录下。如果不指定目录,文件自动产生在程序运行目录中。第二个参数指定读写方式,“w"表示写。注意,这种方式下,每次写入新数据原来的数据就会被覆盖掉。

写入数据

​写入数据也有多种方法,主要分格式化写入和非格式化写入。非格式化写入可以使用fputc/putc:

putc('\n',

fp);​

//向文件中写入一个换行符

​格式化写入可以用fprintf:

fprintf(fp, "%d\n",

num);​

//向文件中写入一个十进制数据和一个换行符

​关闭文件

fclose(fp);​

​完成以上几步后你已经可以在你指定的目录下找到data.txt文件了

2. 用MATLAB读取数据

​用MATLAB读取文本文件数据最简单的方法是使用load函数

load('data.txt');

​上面的命令读取data.txt中的内容,产生一个数组,数组的名字就是文件名。

其他方法可查阅文档。

3. 绘图

​绘图可以说是MATLAB最基本的功能之一了。绘图最常用的命令是plot,用来绘制二维曲线图:

x =

linspace(0,2*pi,100);

y =

sin(x);​

figure

plot(x,y)

​linspace函数产生一维线性向量(数组),上式中产生0~2π之间的等距结点,一共100个。如果没有第三个参数的话,默认为100个。figure命令用来产生一幅新的图像,如果没有这个命令的话之前绘制的图像(未保存)会被清空。

如果要在一幅图上绘制多条曲线,可以使用:

plot(x,y1,x,y2)​

​添加标题、横纵坐标的标签、图例:

title('Graph of

Sine and Cosine Between -2\pi and

2\pi')​

xlabel('-2\pi

< x < 2\pi') % x-axis

label

ylabel('sine and cosine

values') % y-axis label

legend('y =

sin(x)','y = cos(x)')

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值