matlab 笔记

matlab入门:http://www.nanshan.edu.cn/lxy/shuxuejm/jiao%20cai/33%E9%99%84%E5%BD%95%E4%B8%80%20%20Matlab%E5%85%A5%E9%97%A8.pdf

http://www.tup.tsinghua.edu.cn/Resource/tsyz/035384-01.txt(不知道用什么命令时,可以看看)

任务1:

两个文件 time.txt  url.txt中各有1000行数据,读入matlab,构造出2维图。

难点:1、时间的读入到matlab,2、时间如何作为x轴

1、时间读入

某文本文件,有1000行(一下为其中四行):

2009-6-30 14:59
2010-12-5 09:29
2009-7-1 10:27
2010-8-29 16:06

matlab读入到数组T中:

fid=fopen('D:\..\time.txt','r')

[T,count]=scanf(fid,'%d-%d-%d %d:%d',[5,inf])

T是个5*1000的矩阵。

转换成一个1000*5的矩阵TT:

TT=zeros(1000,5)

for i=1:1000

  TT(i,:)=T(:,i)

end

 时间日期处理

http://wenku.baidu.com/view/87c39a68011ca300a6c390f7.html

2.时间如何处理,可以作为x轴坐标。

使用datenum,将string或数组格式的时间转换为数字格式。

这里一有数组格式的时间,在TT中,但发现数组格式的时间矩阵要求是m by 6 或者 M by 3.所以TT要重新定义并赋值为1000 by 6的矩阵。

Tnum=zeros(1000,1)

for i=1:1000

  Tnum(i)=datanum(TT(i,:))

end

plot(Tnum,U,'*')

3.把x轴数字形式的时间改成字符串形式

可以用set(gca,'xtick',m).但是坐标要求为numeric,所以,我手动改,根据datastr(Tnum(i))求其字符串形式。

http://wenku.baidu.com/view/1ff8c2ef81c758f5f61f6736.html(matlab常用作图命令)

http://xiaozu.renren.com/xiaozu/106512/333194632(MATLAB对于文本文件(txt)数据读取的技巧总结)

任务2:一组数据,想知道他们的分布情况

用hist(x,7),hist(x,15)等可以得到直方图。若用subplot(1,2,1),可以在一张图上显示1 by 2的2个直方图的第一个,cdfplot(x),求累积概率密度。。。。。。。。。

任务3:文件读取:

a>有数字有文字的文本文件读取

exam.txt

'sdf',2

'gh',3.1

'tr0e',2.6

可以用D=importdata('exam.txt')      (细节:一行中若开头有'%'(或只要有有%?),则跳过这一行读下一行)

结果D.data=[2 3.1 2.6]

  • D.textdata=['sdf','gh','tr0e']

b>很复杂的文件的读取,文件内容:

C9FAC3FCB5C4D6B52,36,1,40,1,A1E4904,321,3,130,1,211014771,0,0,305,地区,2010-12-30 12:18,2010-12-31 09:43
B5A4A,1061,54,985,1,D4C2B5C0A1BAA2,1690,82,1070,1,211779825,0,0,257,地区,2011-1-1 23:53,2011-1-1 23:57
C2FA,1061,54,985,1,capcomD5E2EA,2078,94,1635,1,206207174,0,0,318,地区,2010-12-14 16:30,2010-12-14 16:31

。。。。几千行的17列的数据。

 [X{1:17}]=textread('D:\Prog\any\asnsel.txt','%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s','delimiter',',')

4:读取一个100*2的矩阵d的第一列的前5行  d(1:5,1)

posted @ 2013-07-26 15:33  xaf_dfg  阅读(441)  评论(0编辑  收藏  举报