THE START
MATLAB和Excel这两者之间有着什么样的关系呢?今天我把之前学习以及用到的关于用MATLAB读写Excel数据,并进行计算处理的经验分享给需要的小伙伴。参加过数学建模的这个应该就很简单了,不经常使用的来说可能有点麻烦。
小编这几天学习使用MATLAB也走了一些弯路(matlab小白
),从会C语言的室友那里找到了解决办法,所以这些编程思路基本都是相通的。
MATLAB是matrix&laboratory两个词的组合,意思为矩阵实验室,所以一定要了解到矩阵在MATLAB中的重要性。一些数据的处理以及计算都是在此基础之上进行的,使用MATLAB对Excel数据进行处理也是用矩阵来处理,所以首先要了解MATLAB关于矩阵的基础。主要会用到读取Excel数据、寻访矩阵元素、计算结果创建矩阵、MATLAB绘图、结果写入Excel。
1.创建矩阵
1.矩阵元素在[ ]内。
2.矩阵列元素之间用空格或者逗号分开。
3.矩阵的行与行之间用分号;隔开。
如下:
A=[1 2 3 ;4 5 6]
运行结果
B=[1,2,4;6,8,9]
2.矩阵寻访
寻访矩阵一般有三种方法,下标寻访、单元素寻访和多元素寻访。
下标寻访又有单下标寻访和双下标寻访,单下标寻访和双下标寻访意思一样只是表示方法不同。
双下标分别表示行与列,对应矩阵的元素的第几行,第几列。无论单下标寻访还是双下标寻访都是单元素,本次小编用到的也是单元素寻访。
1.双下标寻访命令用(,)表示:小括号前边写明矩阵名称,逗号前边表示行,后边表示列。如
A=[123 ;456]
C=A(1,1)
运行结果
多元素寻访
多元素寻访从字面意思理解就是寻访某个矩阵的多个元素,访问整行、整列或者全部。命令需要注意冒号和逗号的使用,要在英文输入状态下。
使用命令如下
1.A(1:2:10)表示取数组或者矩阵的A的第一个元素到第十个元素,步长为2。
2.A([1 2 3])表示取数组或矩阵A中的第1、2、3个元素。
3.A(:,L)表示取矩阵A的第L列全部元素。
4.A(L,:)表示取矩阵A的第L行的全部元素。
5.A(i:i+k,:)表示取矩阵A的第i-i+k行的全部元素。
6.A(:,i:i+k)表示 取矩阵A的第i列到底第i+k列的全部元素。
7.A(i:i+k,k:k+l)表示取矩阵A的第i-i+k行内,并在第k-k+l列中的所有元素。
3.读取Excel
Excel数据可以命令读取也可以直接导入,命令读取也很简单,在MATLAB右上角搜索框输入 help Excel 即可获得命令帮助。
读取命令
今天小编主要用到以下三个命令,其他命令可以在help文档中学习使用,help 文档是一个很好的东西,遇到问题可以在上边进行搜索,还有案例教学。括号内为Excel信息,filename(文件名),sheet(表格位置),xlRange(读取范围)。
num = xlsread(filename)
num = xlsread(filename,sheet)
num = xlsread(filename,sheet,xlRange)
Excel数据
查看Excel数据,确定数据读取范围。我的数据较多,从A1-E603。
读取命令
A=xlsread('D:MATLAB和Excel计算yuzhuyi.xls','sheet1','A1:E603');
小编的参数是5列,603行,所以要将5列中的每行同时带入MATLAB中进行计算,并输出一个结果,一共是603个结果。
下边开始逐个读取Excel中的数据进行计算,也就是矩阵的单个元素寻访。循环读取以及矩阵元素寻访使用如下,一共是5列数据。
for j=1:603
lam=A(j,1);
H=A(j,4);
L=A(j,2);
k1=A(j,5);
k2=A(j,3);
%加入自己的计算公式,输出结果
zeros(j,1)=R;%将每次循环计算的结果放到矩阵中
end
5.增加变量
在上一步的基础上增加变量,依然将变量都放在Excel中进行读取计算,放在F行,变量是5-50间隔为0.1。(如果是等差数列可以直接使用for循环,无需在Excel中读取,小编主要演示MATLAB处理Excel)
变量读取命令为
B=xlsread('D:MATLAB和Excel计算yuzhuyi.xls','sheet1','F2:F451');
小编将这一列数据作为两个变量使用,即d1、d2命令如下
for m=1:450
d1=B(m,1);
d2=B(m,1);
%写入自己的计算公式
end
6.最终计算
将两个循环计算放在一块
for j=1:603
lam=A(j,1);
H=A(j,4);
L=A(j,2);
k1=A(j,5);
k2=A(j,3);
for m=1:450
d1=B(m,1);
d2=B(m,1);
%写入自己的计算公式
%加入自己的计算公式,输出结果
zeros(j,m)=R;%将每次循环计算的结果放到矩阵中
end
end
小编需要将全部的计算结果输出,也就是450列、604行。zeros(j,m)=R这个命令就是将全部结果放入矩阵,结果如下
7.绘图
选中某列的计算结果,点击绘图-选择样式。如果Excel中的绘图无法满足要求可以使用此方法进行绘图,还可以进行拟合等操作。
小编随便选择的样式
8.导出结果
将计算的结果写入到Excel中去,方便后续的计算保存。命令格式和读取数据时是一样的。使用命令
xlswrite('yuzhu.xlsx',zeros);
注意数据太多的话需要使用xlsx格式。数据太多,计算以及结果导出时间有点久。
运行结束后MATLAB会在软件内自动打开数据表格。
使用Excel打开数据
总结
至此MATLAB导入Excel数据进行计算就算完成了,小编这个只是简单的计算,实际的肯定比这个要复杂,命令也多,但是只要明白基本原理操作起来就很简单了。水平有限难免有错误,还请批评指出。