机器学习(吴恩达Octave中的方法及代码总结)

在Octave中
+,-,*,/,^,==,&&,||均是正常使用
xor(0,1) %异或 结果:1
~= %表示不等号
% 是注释作用
PS1('>>') %会隐藏Octave命令窗口中每一行的版本信息
; %表示该句在按下回车键后不会输出 抑制打印输出

>>a=3
a=3
>>a=3;
>>a
a=3
------------
>>c=(3>1);
>>c  %输出结果会是c=1  这里的1表示为真
c=1  
------------
>>a=pi;  %pi表示圆周率
>>a
a=3.1416
>>disp(a); %这里的disp相当于打印
a=3.1416
>>disp(sprintf('2 demical is %0.2f',a))
2 demical is 3.14
>>format long 
>>a
a=3.14159265358979
>>format short
>>a
a=3.1416
---------------
A=[1 2;3 4;5 6] %会输出一个3行2列的矩阵,内容是A中的内容,矩阵中的;相当于矩阵中的换行
A=[1 2;
   3 4;
   5 6 
  ]  %同上
A=[1 2 3] %1行3列 内容:矩阵中的内容
A=1:0.1:2 %会得到一个1行11列的矩阵,从1开始,到2结束,中间每次的步长是0.1
>>A=1:6  
A=
   1 2 3 4 5 6
ones(2,3) %生成一个2行3列的矩阵,矩阵中的内容都是1
2*ones(2,3) %生成一个2行3列的矩阵,矩阵中的内容都是2
zeros(2,3) %生成一个2行3列的矩阵,矩阵中的内容都是0
rand(2,3) %生成一个2行3列的矩阵,矩阵中的内容都是从0-1之间的随机数
randn(2,3) %生成一个2行3列的矩阵,矩阵中的内容都是来自三个值:一个平                  值为高斯分布、方差或等于1的标准偏差
w=-6+sqrt(10)*randn(1,1000);
hist(w) %会绘制一个直方图 这里的方差就是10,标准差是10的平方根
hist(w,50) %绘制一个直方图,直方图的的条数为50
eys(4) $会生成4行4列的单位矩阵
A=[1 2;3 4;5 6]
size(A) %输出A的尺寸大小,3 2
s=size(A) %使用某个变量接收的话,该变量会变成相应的矩阵,内容是A的尺寸大小
size(s) %输出的是s的尺寸大小,1 2
length(A) %会返回最大维度 这里是3
pwd %会输出当前Octave的路径
cd 路径 %会转到指定的路径位置
list %会列出该路径下所有的文件

	>>load 文件名 %会将文件中的内容读到Octave中
	>>load('文件名') %同上
>>who %会显示当前Octave中存储的变量
>>变量名  %会显示该变量中内容,包括刚才读入的文件名,输入文件名的话,会显示文件中内容
>>whos %会显示Otave中存储的变量详细信息,包括:size(维度),Bytes(占据的空间),Class(里面的数据类型)
>>clear 变量名 %会删除指定为变量
可以将指定变量中的内容存储到新的变量中
>>v=Price(1:10) %会将Price中1-10条的内存存储到v中
>>save hello.mat v; %会将v变量中的内容存成一个名为:hello.mat的文件,文件中的内容就是v中的内容
>>clear %按下回车键会清空所有的变量
>>save hello.txt v  -ascii %会将v中的内容按照ascii的形式存储到hello.txt中
        A=[1 2;3 4;5 6]
		>>A(3,2) %索引到第3行第2列,输出6
		>>A(2,:) %会输出第2行所有列的元素
		>>A(:,2) %会输出第2列所有行的元素
		>>A([1 3],:) %会输出第1行、第3行所有列的元素
		>>A(:,2)=[10;12;13] %会将第2列替换成10;12;13
		>>A=(A,[100;200;300]) %会在最右边添加一列,100;200;300
		>>A(:) %会输出A中的所有元素,并放入同一列中进行输出

		A=[1 2;3 4;5 6]
		B=[11 12;13 14;15 16]
		>>C=[A B] %会将AB横向连接起来
		>>C=[A;B] %会将AB纵向连接起来
		[A,B] 与[A B] 结果一样

		A=[1 2;3 4;5 6]
		B=[11 12;13 14;15 16]
		C=[1 1;2 2]
		>>A*C %表示A,C两个矩阵相乘
		>>A .*B %表示A矩阵中的内容和B矩阵中的内容对应相乘
		>>A .^2 %表示A中元素的平方 .一般表示元素位运算
		>>1 ./A %表示对A中的元素求倒数
		>>exp(A) %表示以A中的元素为基准,求每个e的次方
		>>abs(A) %对A中的每个元素求绝对值
		>>-A %相当于-1*A
		>>A+ones(length(A),2) %对A中的所有元素加1 length(A)是求的A的最大维度
		>>A+1 %也是相当于A中的没个元素加1
		
		>>A' %A的转置。这里的单引号是左单引号

		a=[1 15 2 0.5]
		>>val=max(a) %输出的就是该矩阵中元素的最大值
		val=15
		>>[val,ind]=max(a) %输出的是矩阵中的最大值以及最大值的索引
		val=15
		ind=2
		>>a<3 %将矩阵中的元素分别和3进行比较,小于3为真,输出1;大于3为假,输出0
		ans=
		    1 0 1 1
		>>find(a<3) %将会返回输出小于3的索引下标
		ans=
		    1 3 4
		
		>>A=magic(3) %会输出一个3行3列的矩阵,成为魔幻矩阵,但是这个矩阵的每一行、每一列、每
				%条对象上的元素加起来均相等
		
		a=[1 15 2 0.5]
		>>sum(a) %求和
		>>prod(a) %求矩阵中元素的乘积
		>>floor(a) %将矩阵的元素向下四舍五入
		>>ceil(a) %将矩阵的元素向上四舍五入
		
		>>rand(3) %生成一个3行3列的矩阵,内容:0-1
		>>max(rand(3),rand(3)) %生成一个3行3列的矩阵,但是每一元素去的是相同位置上的最大值

		A=[8 1 6;3 5 7;4 9 2]
		>>max(A,[],1) %输出每一行(第一维度)的最大值
		ans=
		    8 9 7
		>>max(A,[],2) %输出每一列(第二维度)的最大值
		ans=
		    8
		    7 
		    9
		>>max(A) %没有指出,默认情况是输出每一列的最大值
		>>max(max(A)) %输出的矩阵的中的最大的一个值
		同样可以先把矩阵的中内容转换成一列,再求矩阵中的最大值
		>>max(A(:))
		
		对于这个魔幻矩阵
		>>sum(A,1) %求解的是的第一维度(每行)的和
		>>sum(A,2) %求解的是的第二维度(每列)的和
		至于每一个对角线的和的求法如下:
		>>eye(3) %先创建一个3*3的单位矩阵
		>>A .*eye(3) %矩阵中对应位置的内容相乘,得出矩阵对角线上的内容
		>>sum(sum(A .*eye(3))) %就会求出矩阵对角线上的和 这是求得是从左上到右下对角线的和
		>>sum(sum(A .*flipub(eye(3)))) %求的是左下到右上的对角线的内容  flipub作用就是将对角线反转

		>>temp=pinv(A) %求的是A的逆矩阵
		>>temp*A %会求出一个单位矩阵
-----------------------------------
		-----------------------------------
		>>t=[0:0.1:0.98]
		>>y1=sin(2*pi*4*t)
		>>plot(t,y1) %会画出几个sin的正弦函数
		>>y2=cos(2*pi*4*t) 
		>>plot(t,y2) %会画出几个sin的余弦函数
		但是这两个函数并不会同时存在,后面的会覆盖上一个
		下面是将两个函数同时画在一张图上
		>>plot(t,y1)
		>>hold on;
		>>plot(t,y2,'r') %r 表示红色  此时两幅图就会显示在同一图上
		>>xlabel('time') %设置x轴的标签名
		>>ylabel('value') %设置y轴的标签名
		>>legend('sin','cos') %会在合适分别为两幅图的进行区分表明
		>>title('my plot') %设置该图的名字
		>>cd C:\User\Desktop; print -dpng 'myPlot.png' %会先转到桌面,并将该图片存储为png格式
		>>close %会关闭打开的图

		>>figure(1);plot(t,y1) %绘制第一张图,并打开
		>>figure(2);plot(t,y2) %绘制第二张图,并打开
		>>subplot(1,2,1); %将图分成1行两列的小格子,现在是占据第一个格子
		>>plot(t,y1) %将会在第一个格子上显示相应的图
		>>subplot(1,2,2); %将图分成1行两列的小格子,现在是占据第二个格子
		>>plot(t,y2) %将会在第二个格子上显示相应的图
		>>axis([0.5 1 -1 1]) %会将此图横轴坐标范围变成0.5~1 纵轴坐标范围变成-1~1
		>>clf; %会清空整个图像上的所有内容

		>>A=magic(5)
		>>imagesc(A) %会绘制一个5*5的色彩格子,每个格子对应不同的坐标范围
		>>imagesc(A),colorbar,colormap gray; 会绘制一张图,同时在右侧有一个颜色柱,该柱是灰色的
============================
		循环:
		>>for i=1:10,
		>     v(i)=2^i
		> end;
		>>v %就会纵向输出v的值
		
		>>indices=1:10
		>>indices %就会横向输出1~10的值
		>>for i=indices,
		>     disp(i)
		> end; %此时的输出结果和上面的相同

		>>i=1
		>>while i<+5,
		>     v(i)=100;
		>     i=i+1;
		> end;
		>>v %前五项输出100,将上面的v的强五项覆盖
		
		>>i=1
		>>while true,
		>     v(i)=999;
		>     i=i+1;
		>     if i==6,
		>          break;
		>     end;
		> end;
		>>v %前五项输出999,将上面的v的强五项覆盖

		>>v(1)=2
		>>if v(1)==1,
		>      disp('this is one');
		> elseif v(1)==2,
		>      disp('this is two');
		> else
		>      disp('this is three')
		> end;
		this is two
		退出Oatave的话可以使用:exit或quit

你可能感兴趣的:(机器学习-吴恩达)