vba和matlab处理数据类型,实现MATLAB与Excel数据交互的一种可行方法

MATLAB是一种数值计算与图形处理软件,Ex-cel是一种用于创建和维护电子表格的应用软件。它们广泛地应用于各自的领域,在功能方面有所交叉。如果这两种软件能实现数据共享,使数据能在两种软件之间相互传递,那么将会给相关的工作带来极大的方便。相关文献[1-3]介绍的插件ExcelLink就实现了这一功能。不过对于某些特殊的情况,比如单方向读取数据,参数化设计等,采用程序语句控制会比做程序接口显得更为简便实用。在M文件中应用读写语句实现数据交互,更适于以MATLAB为服务器以Excel为客户端的场合,此时无需在工作表中编写函数语句,所有的操作和语句的执行都是在MATLAB命令窗口下完成。1.ExcelLink数据交互的优点与不足ExcelLink的安装较为简单,且运行时占用内存小,执行语句速度较快等优势。但也存在某些不足:装载后打开工作表时较慢,执行写命令时要将数据避开执行语句的书写区域范围,在实现参数化时重复性的工作量较大,如重写执行语句或更换工作表等。2.程序语句实现数据交互从M文件程序入手,通过语句控制来实现数据交互。MATLAB和Excel之间的数据传输不外乎有两种情况:数据的读和写。计算过程在MATLAB中完成而不是在Excel中,这样就能避开工作表中“命令区域”的问题。现行的MATLAB7.X版本中有两个语句可以完成该功能,在以下的篇幅中以数据读取语句xlsread为例进行介绍。语句xlsread实现的功能是读取MicrosoftExcel电子数据表格.(xls)文件。规定的语法格式有三种函数描述,这三种格式的函数描述如下:2.1A=xlsread(‘filename’)函数在矩阵A中返回从filename所指定的Mi-crosoftExcel电子数据表格文件中的第一个表格中得到的数值类型的数据。Xlsread函数忽略了文本的标题行及列。但如果元素为空或者不包含任何文本内容,那么该函数将在矩阵A中的相应位置写入NaN(NotaNumber)。2.2[A,B]=xlsread(‘filename’)在矩阵A中返回数值类型的数据,在单元矩阵B中返回文本数据。如果电子表格中包含标题行或者列,那么该函数将仅仅在矩阵B中返回这些元素。如果电子数据表格中包含不在行或者列前面的文本,那么该函数将返回一个和原来的电子数据表格相同大小的单元矩阵,其中就包含了与原来数据表格的内容相应的文本字符。所有与数据相应的元素将为空。2.3A=xlsread(‘filename’,‘sheetname’)该语句实现的功能是读取由sheetname指定的数据表格中的内容。如果这个数据表格不存在则返回错误信息。为了确定一个数据表格中每个数据表的称,称,可以借助于xlsfinfo函数。通过程序语句控制两者之间的数据交互需要注意:当从一个Excel文件中读取数据字段时,必须将Excel的数据值转换为MATLAB数据值,如若不然会在计算结果中产生非常态型数据。MicrosoftExcel和MATLAB均使用从一个确定的日期开始度过的天数来表示日期,但是,MicrosoftExcel使用January1,1900作为这个确定的日期,但是在MATLAB使用Jan-uary1,0000。如果Excel中包含这些日期型数据,在使用的时候要将其代码转换成MATLAB日期。3.更简便的数据交互控制语句上述语句是相关文献中常出现的数据交互控制语句,运用这些语句对工作表中的数据进行操作的时候,需注意数据格式的统一。此外,在工程实践中,笔者发现了很多实用性强的方法,这些方法在平时被应用的范围并不是

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值