第六章 Octave编程

课时38基本操作
% 表示注释
逻辑运算 ==等于 ~=不等于(不是!=) &&与||或xor异或
在命令后加一个分号可以阻止打印输出
B=’hi’ a=pi
Disp(a)直接显示出a的值
Disp(sprint(‘2 decimals: %0.2f’, a))即显示2 decimals: 3.14 sprintf命令生成一个字符串

Format long >>a
format short >>a

矩阵: 分号表示下一行

  1. A=[ 1 2; 3 4; 5 6;] 分号表示下一行
    2.V=1: 0.1: 2 表示从1开始,步长为0.1,增加到2的1*11的矩阵即行向量
    V=1:6 表示元素为123456的矩阵
  2. Ones(2, 3)生成了一个23的元素值为1的矩阵
    C=2
    ones(2, 3) 生成了一个23的元素值为2的矩阵
    W=zeros(1, 3)生成了一个1
    3的零矩阵
    W=rand(1, 3)生成了一个13的矩阵,元素值为0到1的随机数
    W=randn(1,3)生成了一个1
    3的矩阵,元素值服从高斯分布,标准差或方差为1
    W=-6+sqrt(10)*(randn(1, 10000)) -6加根号10乘以高斯随机变量,均值是-6,方差是10,标准差是根号10
    Hist(w)生成w的直方图
    Hist(w, 50)生成w的直方图,有50个数据
  3. Eye(4)表示生成4*4的单位矩阵
    Help eye显示eye函数帮助函数,按q退出

课时39 移动数据
Sz=size(A)返回A矩阵的大小 sz事实上是1*2的矩阵,元素分别是A矩阵的行数和列数
Size(A, 1)返回A矩阵的第一维度的大小,也就是行数
Length(A)返回A矩阵最大维度的大小

在文件系统中加载和查找数据:
Pwd命令显示当前路径
Cd ‘C:\Users\ang\Desktop’ 表示换到这个路径下
Load featuresX.dat或Load (‘featuresX.dat’)
FeaturesX可以显示出featuresX.dat文件的数据
同样可以size(featureX.dat)
Who显示octave里面当前有的变量,whos显示更详细的信息
Clear featuresX删除这个文件 clear表示删除所有变量
V=priceV(1:10) 表示把前10个元素赋给v
Save hello.mat v; 表示将v存入hello.mat文件中,存入硬盘,在桌面上可以看见
Save hello.txt v -ascii 表示存成了人类可读的形式

操作数据:
A(3,2)索引A矩阵中的元素A_32
A(2, :)A(:,2)冒号表示该行或者该列所有元素 A([1, 3], ?)表示A的第一行和第三行中所有列的元素
也可用以上方法赋值
A = [A, [100;101;102]] 表示在A矩阵右边加一列
小技巧:A(:)表示将A的所有元素放到一个列向量中
C=[A B]或C=[A, B]将AB两个矩阵合并在一起,A在左边B在右边
C=[A; B]将AB两个矩阵合并在一起,A在左边B在下xia边 分号表示放到下一行

重要的是知道可以做哪些操作

课时40 计算数据
ABC三个矩阵 运算:AC A+C
A.B表示让矩阵的对应元素相乘
A.^2每个元素平方
1./v求对应元素的倒数
log(v) exp(v) abs(v) -v
小技巧: v+1是让每个元素都加1
A’转置
val=max(A)
[val, ind] = max(A)返回最大值和其索引
注意max(A)返回每列的最大值 max(max(A))即得A矩阵最大值或max(A(: ))
A<3 返回一个矩阵,A矩阵中每个元素与3的比较 find(A<3)返回小于3的索引(竖着数的索引)
A=magic(3)返回三行三列的魔幻函数,即每行,每列,每对角线的元素和相等
可以作为快速生成3
3矩阵的方法
[r, c] = find(A>=3)将A中大于3的元素的行和列数分别放入r与c中
help find
prod(A)将A中每列元素相乘
对小数元素:floor(A)对A中每个元素分别向下取整
ceil(A)对A中每个元素分别向上取整
rand(3)得到3
3随机矩阵 max(rand(3), rand(3))得到3*3随机矩阵,每个元素都是两个随机矩阵中比较大的数
max(A, [ ], 1)返回每列最大值,其中1表示从第一维度去取值,得到行向量=max(A)
max(A, [ ], 2)返回每行最大值,其中2表示从第二维度去取值,得到列向量
sum(A, 1) 取A的每列进行求和,得到行向量=sum(A)
sum(A,2) 取A的每行进行求和,得到列向量
验证magic矩阵对角线元素的和:sum(sum(A.*eye(9)))
验证另一个对角线:sum(sum(A.*flipud(eye(9))))
pinv(A)伪逆矩阵

课时41 数据绘制
PS1(‘>>’)
t=[0: 0.01: 0.98];
y1=sin(2pi4*t);
plot(t, y1); plot是画图,括号参数是横纵坐标
hold on; 表示新的图像绘制在旧的之上
plot(t, y2, ‘r’)表示Octave上保留旧的图继续画新的图,r表示颜色
xlabel(‘time’)
ylabel(‘value’)分别命名横纵坐标
legend(‘sin’, ‘cos’) 给出两条线的名字
title(‘my plot’) 图的标题
cd ‘C:\Users\ang\Desktop’; print -dpng ‘myPlot.png’ 改变路径到桌面与保存图片
close 关掉图片

figure(1);plot(t, y1);为图像标号
figure(2); plot(t, y2);

subplot(1,2,1); 将图片分为1*2的网格,现在使用第一个网格,即左边的
plot(t, y1);
subplot(1,2,2);
plot(t, y2);
axis([0.5 1 -1 1])设置右边的图的刻度,x轴y轴的范围
clf清除一个图形
一些小技巧:A=magic(5)
imagesc(A)可视化矩阵,彩色格图
imagesc(A), colorbar, colormap gray; 执行了三条语句(涉及到了逗号连接命令或逗号连接函数调用)
在这里插入图片描述

课时42 控制语句:for,while,if语句,函数
for循环:

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

indices=1:10;
for i=indices,
disp(i);
end;
while循环:

i=1;
while i <= 5.
v(i)=100;
i=i+1;
end;

if:
在这里插入图片描述在这里插入图片描述

退出octave:quit或exit
函数:
Octave中函数存在.m文件中 squareThisNumber.m
返回y值,参数是x
在这里插入图片描述
添加搜索路径:
在这里插入图片描述

Octave允许一个函数返回多个值
在这里插入图片描述
[a, b]=squareAndCubeThisNumber(5)

定义函数来计算代价函数J(θ):
代价函数J:
在这里插入图片描述
J=costFunctionJ(X,y, theta);
X=[1 1; 1 2; 1 3] 设计矩阵
y=[1; 2; 3]
theta=[0;1] θ0=0 θ1=1
第五行是预测函数h(θ)
j = costFunctionJ(X, y, theta)

课时43 矢量
通过向量化来使代码简化:不需要过多的for循环语句来求和
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值