资源描述:
《基于MATLAB的EXCEL数据计算与分析.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于MATLAB的EXCEL数据计算与分析潜刘方摘要:再怎么样希望先看摘要,阅读本文需要一定的MATLAB基础知识,不需要excel相关知识。结合本人近期工作上的需要测量计算,想偷懒就选择了利用MATLAB偷懒,于是便有了本文。本文首先利用MATLAB读取数据,计算,将数据写入excel,然后花了很大的精力来根据实际需要画图,最后将图保存在excel所在的文件夹下。这个m文件可谓花了我不少的时间和精力。最后根据m文件的不足(不能将图形输入到excel文档当中),进一步弥补这不足,就有了exlink
2、(也叫excellink),在网上搜索了相关的知识,发现很多关于exlink的培训,觉得实在可笑,所以就将exlink的使用写的比较详细,以供读者自行分析体会。关键字:MATLABexcelexlink接口一、前沿MATLAB是一款应用在各个领域的数学软件,最初叫做矩阵实验室,专用于矩阵的运算,后来的版本再各个领域都得到了很好的应用,比如:通信、电力电子、电机控制、运动控制、计算机控制、自动控制,DSP数字信号处理。但是MATLAB对于数据的处理与可视化是很多软件所不能及的。EXCEL作为办公必备
3、软件,能对简单数据分析计算与作图分析,但是处理复杂数据显得力不从心,比如三维作图就无法利用EXCEL作出;EXCEL本身的函数远远没有MATLAB多,MATLAB作为数据有其独特的优势,集成了很多数学函数,包括数据拟合差值等。MATLAB可以从EXCEL中读取数据,经过相关运算之后又可以将数据写入EXCEL,假如需要重复性的对excel可以利用MATLAB编写函数,每次只要运行MATLAB程序就可以完成,大大节省时间和精力。另外,MATLAB还有与EXCEL的接口,叫做EXLINK,运用这个接口可
4、以在excel中完成MATLAB函数的调用,还能传送数据给MATLAB,从MATLAB当中读取数据,从MATLAB当中读取图形,使用方便,操作简单。二、基于MATLAB的数据分析数据分析操作流程主要分为三步:第一步,从excel中读取数据;第二部:利用MATLAB大量函数对数据分析处理;第三步:将分析结果写入excel中。在整个过程中,不需要打开excel软件,操作十分方便,每次操作唯一要做就是修改excel所在的目录及文件名。主要函数如下(具体使用方法可在MATLAB命令窗口输入help+函数名
5、查看):Xlsread从excel中读数据Xlswrite向excel中邪数据num2str将数字转换为字符串strncmp字符串比较polyfit数据拟合polyval具体数值代入求值plot作图xlabelx轴标注ylabely轴标注title图名称标注还想写点其他的,想想最近自己真没有用到,所以就不写了,MATLAB还有一个好处就是数据运算像写数学式子一样方便,包括加减,点乘点除,又如sum(求和),length(求数据长度),两个相除就可以得到平均值,max(求最大数),min(最小数);
6、总之用起来还是很方便的。下面介绍一个具体实例,由于我最近老是需要测试芯片,然后芯片类型比较相似,只要测输入电压,输入电流,输出电流(某个阶段是恒定的),输出功率,最后计算效率,然后我就用MATLAB完成了这些操作,还画图保存在相应的位置。具体代码如下:file='F:XPboxLY9899';%每次操作前目录必须要修改Vin=xlsread(file,'a3:a500');%读数据可以多读,所以多读500个,数据不可超过500;Iin=xlsread(file,'b3:b500');Iout
7、=xlsread(file,'c3:c500');Pout=xlsread(file,'d3:d500');Pin=Vin.*Iin/1000;n=Pout./Pin*100;IoutStr=num2str(Iout);Pout=Pout/70;xlswrite(file,n,'sheet1','e3');%写入地址,最好改,不然有可能显示NA或部分数据没有完全写入str=IoutStr(1,1:3);Num_totle=size(Vin);j=1;f_t=1;fori=1:Num_totleTF
8、=strncmp(str,IoutStr(i,1:3),3);ifTF==0j=1;figure(f_t);plot(x,y,'r*-');xlabel('Vin(v)');ylabel('n(%)');ttt=strcat('Iout=',str,'mA');title(ttt);gridon;x=0;y=0;f_t=f_t+1;str=IoutStr(i,1:3);endx(j)=Vin(i);y(j)=n(i);j=j+1;endfigure(f_t);plot(x,y,'r