本文中的所有Octave语言均适用于Matlab语言,很多语言和Linux命令语言类似,可以结合学习,内容较多但是很详细,适合初学者,建议收藏。很多学习笔记都在代码行注释里面了,都是心血啊~~
>> 5+6
ans = 11
>> 1==2
ans = 0
>> a = pi
a = 3.1416
>> disp(a)
3.1416
>> disp(sprintf('2 decimals: %0.2f',a))
2 decimals: 3.14
>> disp(sprintf('7 decimals: %0.7f',a))
7 decimals: 3.1415927
>> sprintf('7 decimals:%0.7f',a)
ans = 7 decimals:3.1415927
>> format long
>> a
a = 3.141592653589793
>> format short
>> a
a = 3.1416
一般的生成矩阵语法:
>> A = [1 2; 3 4 ; 5 6]
A =
1 2
3 4
5 6
>> v = [1 2 3]
v =
1 2 3
>> v=[1;2;3]
v =
1
2
3
>> v = 1:0.1:2
v =
Columns 1 through 9:
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000
Columns 10 and 11:
1.9000 2.0000
>> v = 1:6
v =
1 2 3 4 5 6
>> ones(2,3)
ans =
1 1 1
1 1 1
>> C = 2*ones(3,3)
C =
2 2 2
2 2 2
2 2 2
>> w=zeros(1,4)
w =
0 0 0 0
>> w=fives(1,4)
error: 'fives' undefined near line 1 column 3
>> w = rand(4,3)
w =
0.96209384 0.63165179 0.78372775
0.44644079 0.25433639 0.63032570
0.40708763 0.99912857 0.93938618
0.82736632 0.00034341 0.57440915
高斯分布(正态分布的随机变量)
用randn语句生成均值为0的,方差为1的标准正态分布:
>> w = randn(1,4)
w =
-0.095146 -0.609136 1.395565 -0.914658
>> w = randn(1,4)
w =
-0.55670 0.95491 1.02120 0.43640
生成分布图:
>> w = sqrt(10)*(randn(1,1000))
>> hist(w) %下面图一
>> hist(w,40) %下面图二
>> eye(5,5)
ans =
Diagonal Matrix
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
>> eye(5,6)
ans =
Diagonal Matrix
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
>> eye(7)
ans =
Diagonal Matrix
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 1
>> A
A =
1 2
3 4
3 4
5 6
>> size(A) %矩阵大小,显示的是4行2列
ans =
4 2
>> sz = size(A)
sz =
4 2
>> size(sz)
ans =
1 2
>> size(A,1) %矩阵行数,显示的是4行
ans = 4
>> size(A,2) %矩阵列数,显示的是2列
ans = 2
>> length(A) %矩阵最大维度为4
ans = 4
在octave中加载数据和寻找数据:
>> pwd %当前所在路径
ans = C:\Users\haiya\Downloads\octave-4.4.1-w64
>> ls %显示当前路径的文件
>> cd 'C:\Users\haiya\Desktop' %跳转到某个路径
>> ls
>> load XXXX.dat %加载当前路径中某个数据文件
>> load('XXXX.dat') %加载当前路径中某个数据文件
>> who %当前Octave中储存的变量
Variables in the current scope:
A C a ans inverseOFA sz
>> whos %当前Octave中储存的变量,更详细的查看(包括size、Bytes、Class等)
>> clear XXXX.dat %删除某个文件
>> v = priceY(1:10) %表示把priceY中的前10行数据存入v中
>> save hello.mat v; %把v储存在hello.mat中
>> clear %删除空间中所有变量
>> who
>> load hello.mat %重新读取变量v,并储存在hello.mat中
>> who
Variables in the current scope:
v
>> whos
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
v 1x6 24 double
Total is 6 elements using 24 bytes
>> save hello.txt v -ascii %把v中数据储存为TXT格式,可视化
>> A = [1 2;3 4 ;5 6]
A =
1 2
3 4
5 6
>> A(2,2) %矩阵A中第2行第2列的元素
ans = 4
>> A (2,:) %矩阵A中第2行所有元素,其中 : 表示该行或者该列所有元素
ans =
3 4
>> A([1 3],:) %取矩阵A中 第1行 和 第3行 的元素
ans =
1 2
5 6
>> A(:,2) = [33;55;66] %对矩阵A的第2列进行赋值操作
A =
1 33
3 55
5 66
>> A = [A,[11;22;33]] %对矩阵A增加新的一列
A =
1 33 11
3 55 22
5 66 33
>> A(:) %把A中所有元素单独放入一列(列向量)
ans =
11
22
33
1
3
5
33
55
66
11
22
33
>> A = [[11 22 33 44];A] %对矩阵A增加新的一行
A =
11 22 33 44
11 1 33 11
22 3 55 22
33 5 66 33