机器学习(1)-Octive语言

Octive语言

1、基本语法


(1)数学运算

>>5+5
ans =  10
>> 3-2
ans =  1
>> 2^6
ans =  64

(2)逻辑运算

>> 11==2  %逻辑运算
ans = 0
>> 2==2
ans = 1

>> 1~=2 %不等于
ans = 1
>> xor(1,0)    %异或

(3)变量

>> x = 7;    %加分号可抑制自动打印
>> x    %不加则打印出结果
x =  7

>> x = pi;
>> disp(sprintf('4 decimals: %0.4f', x));      %转为字符串,保留后4位小数
4 decimals: 3.1416

>> disp(sprintf('14 decimals: %0.14f', x));    %转为字符串,保留后14位小数
14 decimals: 3.14159265358979

format long   %控制输出长短格式的快捷命令
>> x
x =  3.14159265358979
>> format short
>> x
x =  3.1416

(4)向量&矩阵

>> v = [1 ; 2 ; 3]

v =

1
2
3

>> m = [1 : 0.1 : 1.4;   %表示步幅为0.1的从1到1.4
        2 : 0.1 : 2.4;
        3 : 0.1 : 3.4] 
   m =

1.0000 1.1000 1.2000 1.3000 1.4000
2.0000 2.1000 2.2000 2.3000 2.4000
3.0000 3.1000 3.2000 3.3000 3.4000

>> w = randn(2,3)           %(高斯)随机生成2by3的矩阵
w =

-0.63858 0.95909 -0.70297
-0.64368 0.28263 -0.32134

生成直方图

>>w = rand(10,9);
>> hist(w)   %生成直方图

生成的直方图

生成单位矩阵

>>i = eye(3)
i =

Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1

2、移动数据


(1)size

>>A = [1 2; 3 4; 5 6]
size(A) %返回A的尺寸,一个1*2的矩阵[m,n],表示m行n列,测试
size(size(A))
size(A,1) %返回矩阵的行数
size(A,2) %返回矩阵的列数

length(A) %返回矩阵的最大维度,此时返回3,但通常对向量执行length命令

(2)文件操作

>>pwd  %%打印当前路径
ans = F:\octave-4.2.1
>>cd'目录'   %进入某目录   
如:
>>cd 'intel'
>>pwd
ans = C:\Users\ADMINI~1\intel

>>ls %列出当前目录和文件

load 文件名 %加载文件,注意文件编码文ANSI,不支持中文
load('文件名') %以函数的形式
如:
load featuresX.dat
load priceY.dat

(3)查看删除变量

who %显示当先工作空间储存的变量
whos %详细显示当先工作空间储存的变量

clear x %删除变量
clear %删除所有变量

(4)变量赋值

v = priceY(1:10); %将priceY变量的前10个元素存入v中

(5)保存到本地文件

save hello.mat v; %将变量v保存到文件中,以二进制形式
load hello.mat;   %读取文件
sace hello.txt;   %将变量v保存到文件中,以文本文件形式

(6)访问和更改矩阵行列和元素

A(3,2) %访问矩阵A的第3行第2列的元素
A(2,:) %访问矩阵A的第2行的所有元素,结果也是一个矩阵
A(:,2) %访问矩阵A的第2列的所有元素,结果也是一个矩阵
A([1 3],:) %访问矩阵A的第1和3行的所有元素
A(:,2) = [10 ; 11 ; 12] %给矩阵的第二列赋值
则:
a =
1   10
3   11
5   12

>> a = [a, [100;101;102]]  %在矩阵a后面添加一列
则:
a =

 1    10   100
 3    11   101
 5    12   102

A(:) %将矩阵A的所有组成一列
1
10
100
3
11
101
5
12
102


C = [A B] %将矩阵直接连在一起,A在左边,B在右边;或者写成 [A, B]
C = [A; B] %将矩阵直接连在一起,A在上边,B在下边(;意味着换行)

3、数据计算


(1)矩阵乘法

A = [1 2; 3 4; 5 6]
B = [11 12; 13 14; 15 16]
C = [1 1; 2 2]
A*C
A^2 %矩阵的自身乘法(必须是方形矩阵)

(2)按元素计算

A .* B %按元素乘 %若B为标量,可以写成*

A .^ 2 %每个元素二次方,不可以简写成 ^,因为^2表示自身相乘

v = [1;2;3]

1 ./ v %v中每个元素取倒数

(3) 元素单元操作

log(v) %对每个元素取自然对数

exp(v) %每个元素作为e的指数的值

abs(v) %对每个元素取绝对值

-v %对每一位取相反数

(4)元素双元操作

>>v = [1 ; 
       2 ; 
       3];
>>length(v)
ans = 3
ones(3,1)
ans = 
        1
        1
        1
>>v + ones(length(v), 1) %等于v + [1;1;1] 等价于v + 1; v .+ 1
ans =
        2
        3
        4

(5)矩阵的转置、翻转

A'  %转置
filpud(a)  %上下翻转
filplr(a)  %左右翻转

(6)最大,最小,求和,乘积,取整

>> a = [1 15 2 0.5]
>> val = max(a)   %对于行矩阵,取矩阵中的最大元素的值
val =  15

>> [val,idx] = max(a)   %把矩阵a中最大的元素赋值给val,得到索引ids
val =  15
idx =  2

若不是行矩阵
max(a)   %得到每一列的最大值,返回矩阵
max(a, b) %矩阵A、B相同位置的元素相比取大的一个(ab矩阵同大小)
max(a,[],1) %求每一列的最大值
max(a,[],2) %求每一行的最大值

sum(a) %所有元素相加得到的值
sum(a,1) %按列求和
sum(a,2) %按行求和 

prod(a)  %同一列的元素相乘
floor(a) %对所有元素向下取整
ceil(a) %对所有元素向上取整

(7)元素逻辑运算

a < 3  %对矩阵每个元素计算逻辑结果,输出由0和1组成的同大小矩阵

(8)查找元素

find(a < 3)  %返回行矩阵满足逻辑运算的的元素的索引

[r,c] =  find(A>=7) %r为满足条件的元素的行号,c为满足条件的元素的列号

(9)magic方法

A = magic(3) %生成行/列/对角 相加都等于同一值的3*3矩阵(并卵)

(10)求逆

pinv(A) %求逆,pinv(A)*A = eye(n)

4、绘制及可视化数据


(1)绘制函数

t = [0:0.01:0.98]; %定义横坐标
y1 = sin(2*pi*4*t); %定义纵坐标
plot(t, y1) %绘制二维图形,t为横坐标,y1为纵坐标

这里写图片描述

若把纵坐标改成
y2 = cos(2*pi*4*t);
plot(t, y2) %重新绘制图形,t为横坐标,y2为纵坐标

这里写图片描述

二维图被替换成了新的
此时若要同时显示两个,则

plot(t, y1)  %先绘制出一个
hold on  %保持图像
plot(t, y2, 'r') %绘制第二个,颜色为红

这里写图片描述

(2)给函数图添加标注

保持hold状态时,

xlabel('time') %x轴的标签
ylabel('value') %y轴的标签
legend('sin', 'cos') %给两个曲线添加标注
title('my plot') %图的标题

这里写图片描述

(3)将图保存到本地

print -dpng 'myPlot.png' %将图保存到本地
close  %关闭图像

(4)将2个图像用2个窗口显示

figure(1) ;plot(t, y1);
figure(2) ;plot(t, y2);

(5)将2个图像用1个窗口显示

subplot(1,2,1); %将窗口生成1*2的格子,接下来使用第1个格子,绘制出坐标系
plot(t,y1);
subplot(1,2,2) %将窗口生成1*2的格子,接下来使用第2个格子,绘制出坐标系
plot(t,y2);
clf  %清除窗口里的所有图像

(6)改变坐标系范围

axis([0.5 1 -1 1]) %横坐标范围为0.5~1,纵坐标的范围为-1~1

(7)使用色块可视化矩阵

A = magic(5) %创建幻方
imagesc(A) %使用色块绘制幻方

imagesc(A), colorbar, colormap gray %使用色块绘制矩阵A, 添加色标,将颜色映射到灰色

6、流程控制与函数


(1)基本结构与语句

控制语句 控制条件,
    循环体;
end;

if else if判断语句
if 条件1,
%语句;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值