Matlab读写excel文件

来源:互联网 发布:上海微创软件无锡 编辑:程序博客网 时间:2024/05/16 00:43

最近由于要处理大量的数据,而且要对这些数据通过分类算法进行分类,所以就接触到了matlab这个仿真工具,由于时间比较紧,没有太多的时间去吧matlab的语法结构都看一遍,加之本人有一些编程基础,所以打算用到什么再学。

matlab对excel的读

不知道wps的原因还是其他什么原因有matlab的xslread()函数读excel文件的数据时老是出错,但是将文件保存成csv格式的,用csvread()函数进行读时可以正常访问。

matlab对excel的写

写时用的是csvread()函数也是出错,

csvwrite 函数的调用格式如下:
● csvwrite('filename',M),将数组M中的数据保存为文件filename,数据间以逗号分隔。
● csvwrite('filename',M,row,col),将数组M中的指定数据保存在文件中,数据由参数 row和col指定,保存row和col右下角的数据。

系统提示用dmlwrite()函数

 dlmwrite函数用于向文档中写入数据,其功能强于csvwrite函数。dlmwrite函数的调用格式为:
● dlmwrite('filename', M),将矩阵M的数据写入文件filename中,以逗号分隔。
● dlmwrite('filename', M, 'D'),将矩阵M的数据写入文件filename中,采用指定的分隔符分隔数据,如果需要tab键,可以用“\t”指定。
● dlmwrite('filename', M, 'D', R, C),指定写入数据的起始位置。
● dlmwrite('filename', M, attribute1, value1, attribute2, value2, ...),指定任意数目的参数,可以指定的参数见下表。
● dlmwrite('filename', M, '-append'),如果filename指定的文件存在,在文件后面写入数据,不指定时则覆盖原文件。
● dlmwrite('filename', M, '-append', attribute-value list),叙写文件,并指定参数。
● dlmwrite 函数的可用参数如表13-2所示。

表13-2 dlmwrite函数的可用参数
参 数 名            功    能
delimiter    用于指定分隔符
newline      用于指定换行符,可以选择“pc”或者“unix”
roffset         行偏差,指定文件第一行的位置,roffset 的基数为 0
coffset         列偏差,指定文件第一列的位置,coffset 的基数为 0
precision     指定精确度,可以指定精确维数,或者采用 c 语言的格式,如“%10.5f”
matlab读写.txt文件

对于中文英文数据混乱的 txt文件如:

你好
1 11 111 1111
欢迎来到
2 22 222 2222
振动论坛
3 33 333 3333
vib.hit.edu.cn
4 44 444 4444
5 55 555 5555


说明:这种内容格式的文件用上面的方法是不行的。


以下是由chinamaker编写的一种方法:




fidin=fopen('test.txt');                               % 打开test2.txt文件             
fidout=fopen('mkmatlab.txt','w');                       % 创建MKMATLAB.txt文件
while ~feof(fidin)                                      % 判断是否为文件末尾               
    tline=fgetl(fidin);                                 % 从文件读行   
    if double(tline(1))>=48&&double(tline(1))<=57       % 判断首字符是否是数值
       fprintf(fidout,'%s\n\n',tline);                  % 如果是数字行,把此行数据写入文件MKMATLAB.txt
       continue                                         % 如果是非数字继续下一次循环
    end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt');      % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来 

fgetl与fgets的区别是都是从文本文件里面读一行的内容,差别在于,后者返回的结果中包含换行符而前者忽略换行符

0 0
原创粉丝点击