概述
最近正在做一个项目,源码使用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, "%dn",
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 -2pi and
2pi')
xlabel('-2pi
< x < 2pi') % x-axis
label
ylabel('sine and cosine
values') % y-axis label
legend('y =
sin(x)','y = cos(x)')
最后
以上就是无辜石头为你收集整理的c 与传递数据MATLAB,C与MATLAB的数据交互——通过记事本的全部内容,希望文章能够帮你解决c 与传递数据MATLAB,C与MATLAB的数据交互——通过记事本所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复