Coursea-吴恩达-machine learning学习笔记(五)【week 2之Octave/Matlab Tutorial】

基础操作:

Octave O c t a v e 中的部分符号表示:
不等于:~= 等于:==
逻辑与:&& 逻辑或:|| 异或运算: XOR(A,B) X O R ( A , B )

变量赋值: a=3 a = 3 如果给一个变量赋值,不希望在屏幕显示结果,可以在命令后面加上分号 (a=3) ( 如 : a = 3 ; )

复杂的屏幕显示可以用 disp() d i s p ( ) 命令来实现;
format f o r m a t 用来控制输出格式,例如: format long f o r m a t   l o n g

建立矩阵: A=[12 ;34 ;56] A = [ 1 2   ; 3 4   ; 5 6 ]
A A 3×2矩阵,‘;’作用为矩阵内换行

V=1:0.1:2 V = 1 : 0.1 : 2 V V 表示一组值,从数值1开始,步长为 0.1 0.1 ,直到增加到2。

ones(2,3) o n e s ( 2 , 3 ) 表示生成一个 2×3 2 × 3 的矩阵,矩阵中的所有元素都为1;
2ones(2,3) 2 ∗ o n e s ( 2 , 3 ) 生成一个 2×3 2 × 3 的矩阵,矩阵中的所有元素都为2;
zeros(1,3) z e r o s ( 1 , 3 ) 生成一个 1×3 1 × 3 的矩阵,元素全部是0;
rand(1,3) r a n d ( 1 , 3 ) 表示 1×3 1 × 3 矩阵中的元素均为随机值(取自均值为 0.5 0.5 ,幅度为 01 0 ∼ 1 的均匀分布);
W=randn(1,3) W = r a n d n ( 1 , 3 ) 表示 1×3 1 × 3 矩阵,元素取自均值为 0 0 ,方差为1的高斯分布。

hist(W) h i s t ( W ) 命令表示绘制直方图;
eye(4) e y e ( 4 ) 表示生成一个 4×4 4 × 4 的单位矩阵;
help h e l p 命令用来了解其他命令的功能,例如: helpeye h e l p e y e

移动数据:

size(A) s i z e ( A ) 命令返回矩阵 A A 的维度,结果形式为一个1×2的矩阵;
size(A,1) s i z e ( A , 1 ) 返回A的行数, size(A,2) s i z e ( A , 2 ) 返回A的列数;

若存在向量 V=[1,2,3,4] V = [ 1 , 2 , 3 , 4 ] length(V) l e n g t h ( V ) 返回最大维度的大小;

pwd p w d 命令显示当前路径;
cd c d 命令切换到所需路径下;
ls l s 命令显示路径下所有文件;

Octave O c t a v e 中,用 load() l o a d ( ′ 文 件 名 ′ ) 来读入文件;

who w h o 命令可以显示出在当前 Octave O c t a v e 空间中的所有变量名;
whos w h o s 命令可以详细显示所有变量的信息;
clear  c l e a r   变量名:用来清除变量;
clear c l e a r :清除所有变量;

save  s a v e   文件名 变量名:表示把变量存入文件内;
save  s a v e   文件名 变量名 ascii − a s c i i :把变量以固定编码形式存入文件内;

A(3,2) A ( 3 , 2 ) 取矩阵 A A A32元素;
A(2,:) A ( 2 , : ) 取矩阵 A A 的第2行元素;
A([1 3],:) A ( [ 1   3 ] , : ) 表示取矩阵的第 13 1 、 3 行元素;
A=[A,[100;101;102]] A = [ A , [ 100 ; 101 ; 102 ] ] 表示在矩阵 A A 的右侧加一列;
A(:)表示把矩阵 A A 的所有元素放入一个向量。

计算数据:

Octave中, 就是矩阵乘法,设A mn m ∗ n 矩阵, B B nt矩阵,则 C=AB C = A ∗ B mt m ∗ t 矩阵, Cij C i j 元素为 A A 的第i行乘以 B B 的第j列;

. . ∗ 只应用于同型矩阵,若 A A mn矩阵, B B 也必须是mn矩阵, C=A.B C = A . ∗ B 也为 mn m ∗ n 矩阵, Cij=AijBij C i j = A i j ∗ B i j

C=A.2 C = A . ∧ 2 ,则 Cij=AijAij C i j = A i j ∗ A i j

V=[1;2;3] V = [ 1 ; 2 ; 3 ] ,则:
C=1./V C = 1. / V ,则 Cij=1/Vij C i j = 1 / V i j
C=log(V) C = l o g ( V ) ,则 Cij=log(Vij) C i j = l o g ( V i j )
C=exp(V) C = e x p ( V ) ,则 Cij=exp(Vij) C i j = e x p ( V i j )
V=1V − V = − 1 ∗ V
V+1 V + 1 ,则 Vij=Vij+1 V i j = V i j + 1

a=[1 15 2 0.5] a = [ 1   15   2   0.5 ] max(a)=15 m a x ( a ) = 15 ,表示求向量元素的最大值;
命令 a<3 a < 3 的结果: [1 0 1 1] [ 1   0   1   1 ]
find(a<3) f i n d ( a < 3 ) 的结果: [1 3 4] [ 1   3   4 ] 给出元素的位置;

A=magic(3)=834159672 A = m a g i c ( 3 ) = [ 8 1 6 3 5 7 4 9 2 ]
magic m a g i c 函数返回一个矩阵,它的所有行、列、对角线的元素加起来都等于相同的值。
[r,c]=find(A>=7) [ r , c ] = f i n d ( A >= 7 ) 结果 r=132c=123 r = [ 1 3 2 ] c = [ 1 2 3 ]
意思是找出 A A 中大于等于7的元素, r r 表示行位置,c表示列位置。

sum(a) s u m ( a ) 为求 a a 向量所有元素之和;
prod(a)为求 a a 向量所有元素乘积;
floor(a) a a 向量元素均向下取整;
cell(a) a a 向量元素均向上取整。

C=max(A,B),则 Cij=max(Aij,Bij) C i j = m a x ( A i j , B i j )
max(A,[],1) m a x ( A , [ ] , 1 ) 求每一列最大值;
max(A,[],2) m a x ( A , [ ] , 2 ) 求每一行最大值;

上述 magic m a g i c 矩阵 A A 中:
max(A)=[8 9 7]
max(max(A))=9 m a x ( m a x ( A ) ) = 9

sum(A,1) s u m ( A , 1 ) 求得每一列的总和;
sum(A,2) s u m ( A , 2 ) 求得每一行的总和。

eye(3)=100010001flipud(eye(3))=001010100 e y e ( 3 ) = [ 1 0 0 0 1 0 0 0 1 ] f l i p u d ( e y e ( 3 ) ) = [ 0 0 1 0 1 0 1 0 0 ]

绘制数据:

t=[0:0.01:0.98];#生成一个数据集
y_1=sin(2*pi*4*t);
plot(t,y_1);#正弦函数

y_2=cos(2*pi*4*t);
plot(t,y_2);#余弦函数

plot(t,y_1);
hold on;#将新图跟旧图画在一起
plot(t,y_2,'r');#'r'表示颜色

#设置坐标名
xlabel('time');
ylabel('value');
#设置曲线名
legend('sin','cos');
#设置图片名
title('myplot');
#保存图片
print -dpng 'myplot.png'

#绘制两幅图
figure(1);
plot(t,y_1);
figure(2);
plot(t,y_2);

#将图片分为1*2的格子,用第一个绘图
subplot(1,2,1);

plot(t,y_2);
#设置x,y轴的起始刻度
axis([0.5 1 -1 1]);

A=magic(5);
#将A呈现为一个不同颜色的拼图
imagesc(A);

控制语句:

for f o r 语句:

for i=1:10,
    V(i)=2^i;
end;

while w h i l e 语句:

i=1;
while i<=5,
    V(i)=100;
    i=i+1;
end;

while+if w h i l e + i f 语句:

i=1;
while true,
    v(i)=999;
    i=i+1;
    if i==6,
        break;
    end;
end;

函数定义:

function y=squareThisNumber(x)

y=x^2;

上述代码存放在 squareThisNumber.m s q u a r e T h i s N u m b e r . m 文件中,调用时,切换到 squareThisNumber.m s q u a r e T h i s N u m b e r . m 所在路径,执行 squareThisNumber(5) s q u a r e T h i s N u m b e r ( 5 ) 即可。

squareThisNumber.m s q u a r e T h i s N u m b e r . m 路径通过 addpath(XXX) a d d p a t h ( ′ X X X ′ ) 添加,则无需切换路径,也可执行。

函数返回多个值:

function [y_1,y_2]=SquareAndCubeThisNumber(x)

y_1=x^2;
y_2=x^3;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值