###Octave的使用
更改提示符
添加分号抑制输出
查看帮助:
构造10000个随机数并绘制高斯分布:
1 2
| >> w=randn(1,10000); >> hist(w,50)
|
圆周率:pi ,常数:e
格式化输出
矩阵
横向量:
列向量:
2*3,所有元素均为1:
1*3,所有元素均为0:
5*5单位矩阵:
3*3高斯随机数矩阵:
矩阵数乘:
读取A[3,2]:
读取矩阵A第2列所有元素:
读取矩阵A第1行和第3行所有元素:
将A第二列替换为[10;11;12]:
在A的最后加上一列:
将A所有的元素合并成一个列向量:
两个矩阵列合并:
两个矩阵行合并
移动数据
所用到的数据: featuresX.dat, priceY.dat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| >> cd E:\桌面 %Octave中不能输入中文,在左上窗口双击打开 >> load featuresX.dat >> load('priceY.dat') >> who %使用who命令显示当前所有变量,使用whos查看变量更详细的信息 >> featuresX %展示数据 featuresX =
2104 3 1600 3 2400 3 1416 2 3000 4 ...... >> size(featuresX) ans =
27 2 >> v=featuresX(1:5) v =
2104 1600 2400 1416 3000
>> save hello.mat v %二进制方式存储数据 >> save hello.txt v -ascii %存储数据 >>clear %清空所有变量
|
数据的计算
1 2 3 4 5 6 7 8
| %各种矩阵的运算 >> A*B >> A.*b >> A.^2 >> 1 ./A >> log(A) >> exp(A) >> -A
|
A中每个元素加1
1 2 3
| >> A+ones(size(A)) %或者: >> A+1
|
矩阵转置
最值,比较大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| >> A=[1 3 0.5 100] A =
1.00000 3.00000 0.50000 100.00000
>> [val ind]=max(A) val = 100 ind = 4 >> [val]=min(A) val = 0.50000 >> A>2 ans =
0 1 0 1
|
查找特定元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| >> A=[1 3 5;6 8 9] A =
1 3 5 6 8 9
>> find(a>3) error: 'a' undefined near line 1 column 6 >> find(A>3) ans =
2 4 5 6
>> [r c]=find(A>=2) r =
2 1 2 1 2
c =
1 2 2 3 3
|
生成任意行、列、对角线和相等的矩阵:
1 2 3 4 5 6
| >> magic(3) ans =
8 1 6 3 5 7 4 9 2
|
列向量求和
1 2 3 4
| >> sum(A) ans =
7 11 14
|
1 2
| >> floor(a)%向下取整 >> ceil(a)%向上取整
|
最值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| >> A=[1 2;3 4;5 6] A =
1 2 3 4 5 6
>> A=[1 2;3 4;5 6], A =
1 2 3 4 5 6
>> B=[3 1;4 6;2 9] B =
3 1 4 6 2 9
>> max(A,B) %构造一个由A,B两个矩阵中对应位置较大的数组成的矩阵 ans =
3 2 4 6 5 9
>> max(A,[],1)%取出矩阵每列最大的元素 ans =
5 6
>> max(A,[],2)%取出矩阵每列最大的元素 ans =
2 4 6 %获取矩阵中最大元素两种方式 >> max(max(A)) ans = 6 >> max(A(:)) ans = 6 >> flipud(A)%矩阵上下翻转 ans =
5 6 3 4 1 2 >> pinv(A)%矩阵的逆 ans =
-1.33333 -0.33333 0.66667 1.08333 0.33333 -0.41667
|
绘图
(将函数画在同一图中、添加坐标轴说明、图示、存储图像、同一窗口不同位置显示两个图像、坐标轴刻度)
将矩阵可视化
控制语句
循环语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| >> for i=1:10, v(i)=i^2; end; >> v v =
1 4 9 16 25 36 49 64 81 100
>> i=1; >> while i<=10, v(i)=sqrt(v(i)); i=i+1; end; >> v v =
1 2 3 4 5 6 7 8 9 10
|
定义函数
1 2 3
| >> [y1,y2]=squareAndcube(5) y1 = 25 y2 = 125
|