excel是我们常用的一款电子表格软件,其可以直观的展现我们收集的数据,并对其进行数据处理。excel中自带了许多数学函数,可以满足我们的基本日常计算,但当我们需要进行一些复杂计算,比如迭代计算,矩阵计算时,对于不懂vba语言的使用者来说就很难实现了。而对于像作者一样,不懂vba但会matlab或python语言的使用者可以使用另一种方法,即将excel的数据读入另外的编程软件进行数据处理,再将结果写入excel中。当然学学vba肯定是更好的,但是由于vba语言较为小众且应用范围较窄,对于像作者这样的懒人来说当然是退而求其次了。

filename为要打开的文件名,当excel文件和matlab文件不在同一文件夹时,需要加入完整的excel文件位置名称,比如’‘;sheet为要提取的excel的sheet名称;range为选取单元格的范围,比如选取A1到A3的单元格,即输入’A1:A3‘。另外值得注意的是当选取的范围内既有数字又有文字时,num要变为矩阵形式,即[num, txt]= xlsread(filename, …)。num存储的数字,txt存储的是文字。

xlswrite为写入函数,其用法和读取函数大致相同,只是多出了要写入的内容:

下面我以求解矩阵方程为例,进行进一步的解释。矩阵方程的公式为Ax=b,在excel中没有直接的矩阵除法函数,所有在excel中求解矩阵方程时,需要先对A取逆值,再与b相乘才能求出解。但在matlab中可以使用高斯消元法直接求出解,下面我来演示。

2.完成后我们打开matlab,新建文件,开始读取A和b。我们可以双击左下角的工作区中的A,可以看到数据已经完成读取。

excel的优点是能够清晰的展现数据,matlab的优点是可以进行复杂的数学计算,两者的结合可以让我们可以更加便利的处理各种数据,提高工作效率。在简单的数据处理中我们可能体会不到这种便利,但当数据变得众多又需要复杂计算时我们可以尝试使用这种方法。

发表回复

您的电子邮箱地址不会被公开。