机器学习——Octave语法

这篇博客详细介绍了Octave的语法,包括基础操作如注释、次方和逻辑判断,数据操作如加载和显示变量,数据运算如矩阵运算和函数应用,以及绘图方法。还提到了控制语句、函数定义以及Octave命令指南,是学习和使用Octave的实用资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Octave语法

基础操作

1.注释%

2.次方^

2^6

3.逻辑判断相等==

4.逻辑判断不等~=

5.与&&

6.或||

7.异或 xor()

xor(1,0)

8.赋值=

a=3;
b='hi';
c=3>=1;

9.变量显示disp()或直接输出变量

a=pi;
disp(a);
disp(sprintf('2 decimals:%0.2f',a))


format long
a

10.向量与矩阵

a=[1 2;3 4;5 6] %三行两列矩阵
a=[1;2;3] %三行一列矩阵 或 三维列向量
a=[1 2 3] %三列一行矩阵 或 三维行向量

a=[1:0.1:2]%从12 ,步长为0.1,绘制坐标轴时有用

a=1:6  %从16,步长为1

a=ones(1,3) %[1 1 1]
a=2*ones(2,3) %[2 2 2;2 2 2]
a=zeros(1,3) %[0 0 0]

a=rand(1,3) %生成随机值为01的一行散列矩阵
a=randn(1,3) %矩阵所有值服从均值为0,方差为1的正态分布(normal distribution)

a=-6+sqrt(10)*(randn(1,10000)) %均值-6,方差 10

hist(a) %绘制10个方块的直方图(histogram)

hist(a,50) %绘制50个方块的直方图

a=eye(4) %四行四列的单位矩阵(identity matrix)

数据操作

1.维数显示size()

sz=size(a) %显示矩阵维数 [行数 列数]
sz=size(A,1) %返回显示行数  
sz=size(A,2) %返回显示列数
length(a) %行、列最长的维数

2.加载数据load

load xxx.dat

3.显示所有变量who

who %显示所有工作环境中设置的变量

whos %同上,但包括具体信息

4.删除变量clear varname

5.删除所有变量clear

6.转存数值

v=priceY(1:10) %将priceY的前十个数据存到v中

7.存储数据到工作目录

save filename v
save filename v -ascii %存储为文本文件

8.索引

a(3,2) %索引(行,列),即第三行,第二列

a(2,:) %第二行所有元素 ':'表示该维所有元素

a([1 3],:) %显示第一、三行

a(:,2)=[10;11;12] %对第二列赋值

a=[a,[100;101;102]] %添加列元素

a(:) %将所偶元素转放入一个列向量

c=[a b] %将a、b两个矩阵连接在一起为c,左右排列

c=[a;b] %将两个矩阵连接在一起,上下排列

数据运算

1.矩阵乘*

a*c

2.矩阵点乘.*

a .* b %矩阵点乘,对应各个元素相乘,要求两个矩阵大小相同

3.矩阵元素乘方.^

a .^ 2

4.元素倒数./

1 ./ a %每个元素元素倒数

5.对数log()

log(a)

6.e的幂exp()

exp(a)

7.绝对值abs()

abs()

8.负数-

-a 

9.加法

a+ones(length(v),1) %同v+1

10.转置'

a' %得到a的转置矩阵

11.函数操作

a=[1 15 2 0.5];
val=max(a)   %返回最大值
[val,ind]=max(a) %val为最大值,ind为最大值的索引

b=[1 2;3 4]
val=max(b) %若b是矩阵,则返回每列最大元素

%a=[1 15 2 0.5]
a<3 %返回小于3的判断,0为假,1为真

find(a<3) %返回小于3的索引

A=magic(3) %产生一个3*3的魔方阵,矩阵所有行、列、对角线之和相同
%A= [8,1,6;3,5,7;4,9,2]

[r,c]=find(A>=7) %返回符合条件的元素的行列,r c 分别以列向量存储

sum(a) %求和
prod(a) %求乘积
floor(a) %去下整
ceil(a) %去上整

max(rand(3),rand(3)) %返回较大的矩阵

max(b,[],1) %返回每列最大元素,同max(b)
% [8,9,7]

max(b,[],2) %返回每行最大元素
%[8;7;9]

max(max(b))  %返回矩阵最大元素

sum(b,1) %返回每列相加值
sum(b,2) %返回每行相加值

sum(sum(b .* eye(9))) %对角线元素求和

sum(sum(b .* flipud(eye(9)))) %斜对角线元素和flipud上下翻转

12.矩阵求逆pinv()

pinv(b) %同inv(b'*b)*b'

绘图

%plotting
t=[0:0.01:0.98];
y1=sin(2*pi*4*t);
plot(t,y1);   %绘图
y2=cos(2*pi*4*t);
plot(t,y2);

hold on; %在上一图中继续绘图,hold off关闭
plot(t,y2,'r') %用不同颜色绘图

xlabel('time')
ylabel('value')

legend('sin','cos')
title('my plot')

print -dpng 'myplot.png'
close

figure(1);plot(t,y1);
figure(2);plot(t,y2);
figure(1);clf; %指定某个图,clf-清空图

subplot(1,2,1) %分成1*2的图,访问第一个图
plot(t,y1);

subplot(1,2,2) %分成1*2的图,访问第二个图
plot(t,y2);

axis([0.5 1 -1 1]) %改变坐标轴x的范围为 0.5-1  y坐标轴范围 -1 - 1
%绘制矩阵
A=magic(5)
imagesc(A)

1.绘图plot()

2.在上一图中继续绘图hold on,hold off关闭

3.标记X坐标轴xlabel()

4.标记Y坐标轴ylabel()

5.标记图中曲线legend()

6.标记图标题title()

7.保存.png图片到工作目录print -dpng 'filename'

8.关闭图像close

9.指定图像标号figure()

10.在同一个窗口里分割为多个图像subplot()

11.改变坐标轴的范围axis()

12.绘制矩阵imagesc()

控制语句

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

% u can use 'break' 'continue' inside for and while loops to control execution

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

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

if v(1)==1,
    disp('the value is one');
elseif v(1)==2,
    disp('the value is two');
else
    disp('the value is not one or two')
end;

函数定义

每个函数定义在一个文件中,例如,”squareThisNumber.m”。
【注】文件名与函数名要一致

function y=squareThisNumber(x)
y=x^2;

调用函数
* 改变工作目录
cd path
* add search path
addpath('path')
savepath

* Octave可以返回多个值

function [y1,y2]=squareandCubeThisNo(x)
y1=x^2
y2=x^3

Octave命令指南

http://enacit1.epfl.ch/octave_doc/refcard/refcard-a4.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值