注:本文是基于斯坦福的机器学习课程git
1. A=[1 2;3 4;5 6]机器学习
这样就定义了一个矩阵函数
size(A)===>3 3学习
若是是向量:B=[1 2 3 4]orm
length(B)=4blog
2.修改路径:cd 'c:\snow'ci
load 1.dat 加载文件element
save 1 保存文件字符串
save hello.mat variable 表示把某个变量存入到文件中it
save hello.txt C -ascii %save as text(ASCII)
3.who 显示当前全部的变量名称
whos 显示当前变量的名称和详细的信息
clear variable 表示清楚某个变量
4.对变量的操做
A(3,2) %第三行第二列
A(2,:) %第二行,全部的元素
A(:,2)=[10;11;13] %修改了第二列的全部值
A(:) %修改A为一个列向量
C=[A B] %直接链接两个,A在左,B在右
C=[A ;B] %直接链接两个,A在上,B在右=下
5.矩阵之间的运算
A,B都是矩阵
A*B %计算A 和B的乘积
. 表示对每个元素进行某种操做,例如:
1 ./A %表示取A中每个元素的倒数
log(A) %表示对A中的每个元素取其对数
exp(A) %表示对A中的每个元素取其天然指数
abs(A) %表示对A中的每个元素取其绝对值
-A %表示对A中的每个元素取反
A+1 %表示对A中的每个元素加1
max(A) %表示求出A中的最大值,可是须要注意,若是A是矩阵的话,是对每一列求出最大值,若是A是向量,则是直接求出最大值
find(a<3) %找出向量中小于3的数字
a<3 %返回的是01字符串,表示每一个元素是否小于3
sum(a) prod(a) floor(a) ceil(a) %
sum(A,1) %表示对每一行求全部元素的和
sum(A,2) %表示对每一列求全部元素的和
sum(sum(A.*eye(9))) %求出A的对角线之和
max(rand(3),rand(3) ) %将会返回一个3*3的矩阵,每个元素都是随机生成的矩阵对应的两个元素的最大值
max(A,[],1) %将会返回一个行矩阵,是A中每一列的最大值
max(A,[],2) %将会返回一个列矩阵,是A中每一行的最大值
max(A) %是对每一列求出最大值
max(max(A)) %求矩阵的最大值 或是也能够先把矩阵变成列 A(:) 而后求max,max(A(:))
A+单引号 %表示求A的转置
pinv(A) %求出A的逆矩阵
6.函数建立矩阵
ones ,zero 建立全1或者全0的矩阵
diag(1,2,3) %建立对角线是1,2,3,其余所有是0的矩阵
e=[] %建立一个空的矩阵
eye(3) %建立一个3*3的单位矩阵
7.数据的可视化
>> t=[0:0.01:0.98];
>> y1=sin(8*pi*t);
>> y2=cos(8*pi*t);
>> plot(t,y1);
>> hold on;
>> plot(t,y2,'r');
>> xlabel('time');
>> ylabel('value');
>> title('my plot');
>> legend('sin','cos');
>> cd 'D:\';print -dpng 'myPng';
>> close %close the figure
clf %清除图像
figure(1);plot(t,y1);
>> figure(2);plot(t,y2);
>> subplot(1,2,1) %divid 1*2,access the first element
>> plot(t,y2);
>> subplot(1,2,2);
>> plot(t,y1);
>> axis([0.5,1,-2,2])
>> print -dpng '2.png'
imagesc(A), colorbar,colormap gray;
8.控制语句
1.if...else statement
符号 意义 例子
== 等于 if x==y
= 不等于 if x =y
> 大于 if x>y
>= 大于等于 if x>=y
< 小于 if x<y
<= 小于等于 if x<=y
& 与 if x==1 & y>2
| 或 if x==1 | y>2
~ 非 x~= y
这与 C++ 中的语法又必定的差别:Octave 中条件不须要用括号 () 括起来 (固然使用括号会让程序更加明
了), 并且 statments 程序块不须要用大括号{ } 括起来。另外,Octave 中须要用 end 命令来标识 if 语句的
结束。在 Octave 中,if...end 和 if...endif 都是合法的. 使用 end 可让 Octave 的文件与 Matlab 文件
兼容.
在 switch 语句中,x 的值依次与 case 中的值比较,若是找到与之相等的值,相应的 statements 将被执 行。注意到在 Octave 中 switch 语句不像 C++ 那样须要 break 语句——Octave 中找到匹配的选项,执行 statements 中的语句并退出 swith 语句。如果没有匹配的项,otherwise 中的语句被执行。例如 octave:##> a=1; octave:##> switch a case 0 disp('a is zero'); case 1 disp('a is one'); otherwise disp('a is not a binary digit'); end a is one