作为一个转学金融的程序员,最近在开始学习计量软件,对比了下stata和matlab之后,虽然matlab安装还有大小复杂多了,但是功能和扩展性果真牛逼,为了一劳永逸,直接用matlab吧。
因为有四年软件开发的工作经验,所以学习起来很快,入门时,总结了下自己的matlab入门经验,从一门语言的学习角度上希望能对大家有所帮助。最后赞一个,虽然不如java和.net友好,但是真心很强大
软件基础
1,matlab的数据文件是mat后缀,脚本是m后缀。有执行路径的概念,需要把脚本文件放在path中才会执行。
2,数据可以导入,执行时有workspace的概念,相当于一个临时内存。在workspace中的数据变量都可以直接使用。
3,toolbox很强大,help也很强大,软件中包含了有很多使用例子,也有很细致的文档,通过示例的学习,几乎可以掌握该类型的应用,比如线性回归。help可以直接搜索,还可以设置书签,但是不能复制代码,很郁闷。
4,matlab的帮助文档做的很好,先用帮助文档
语法
1,hold on是画图
2,矩阵中“;”表示换行,例如:a=[1,2,3;4,5,6;7,8,9],可以用a(2,3)取第二行散列的数
“:”表示所有行,例如a(2,:)=1,表示第二行所有列都是1.
矩阵的每个数据操作用“.”表示。例如c=a.*2表示c是a中所有数据乘以2,同样数组也可以应用。
3,hold on表示画图中不换窗口,继续在此窗口中画图,hold off表示放开。
4,屏幕控制语句
figure(n);close(n);close all;
hold;clf;subplot(n,m,p);refresh.
5,matlab中画图主要是给x轴先排好序,可以用sort函数。
例如画y=x*x;
x=randn(100,1);
y=x.*x;
plot(sort(x),y);
6,矩阵中“:”的使用。
matrix(:,1),表示第一列。
7,在matlab里不推荐使用i,j作为循环变量
8,数组是可以临时变动的,比如z(10,10)=1会自动扩展你的变量,但是这样会造成速度低下,大数据的时候不推荐使用
9,可以用zeros(800,800)来初始化一个全为零的矩阵
10,matlab中变量名一定要谨慎命名,否则重复或与关键字冲突会导致错误。
11,相关性检验用corr(x)即可。
12,画图时的注释,有gtext(’用鼠标选择注释位置’);和Legend(‘给每条线注释’)