四、初识octave
1.基本操作
(1)% 表示注释
(2)~ 表示反,相当于编程语言中的!
(3)&& 表示与 || 表示或
(4)加减乘除是 + - * /
(5)PS1("$") 表示将命令提示符换为$
(6)在命令输入完成后,加一个; 表示隐藏输出
(7)hist()可以将数据以图像的形式输出
创建矩阵的命令
(1)A=[1 2;3 4;5 6]将创建一个3*2的矩阵;
(2)B=1:0.2:2 表示创建一个行矩阵,元素为从1开始,每加0.2成为下一个元素,直到2为止;
B=1:6 表示创建一个行矩阵,元素从1开始,每次加1成为下一个元素,直到6为止;
(3)eye(4) 表示创建一个4 *4的单位矩阵;
ones(2,3)表示创建一个元素全为1的2 *3的矩阵(类似用法的还有zeros);
rand(3,4)表示元素全为(0,1)之间的随机数的3 *4的矩阵。
2.移动数据
(1)一些常用的命令
关于size()的命令
size(A)返回A矩阵的行列数,以行矩阵输出;
size(A,1)表示A的行数;
size(A,2)表示A的列数;
length(A)表示A的行数和列数中大的那个;
关于who的命令
who 显示octave中所有变量名
whos 详细显示
关于clear的命令
clear(A) 删除A变量
clear 删除所有变量
(2)从文件中读取数据
①先用pwd查看当前目录,用cd转到数据文件所在目录;
②用load加载数据文件(包含后缀),此时文件名(不含后缀)就成为了变量。
(3)存储数据到文件中
v=a(1:10) 表示将变量a的前十个元素赋给v
save b.txt v 表示将变量v保存到一个b.txt文件中(该文件依然用变量v代表)
(4)操作数据
①A(3,2) 表示矩阵中第三行第二个元素
②A(3,:) 表示矩阵中第三行所有元素(可以利用这一点来给矩阵中特定元素赋值)
③A=[A,B] 表示将矩阵A和矩阵B左右拼接
④A=[A;B] 表示将矩阵A和矩阵B上下拼接
⑤A(:) 把A中所有元素放入一个单独的列向量中
3.数据运算
(1)关于矩阵整体的运算
A*B 表示矩阵的乘法(需要满足A的列数=B的行数)
A.*B 表示将A的每一个元素与对应的B的元素相除(需要满足A和B的行列数相等)
A.^2 表示将A的每一个元素平方
A./B 表示将A的每一个元素与对应的B的元素相除(需要满足A和B的行列数相等)
exp(A) 表示以e为底形成新矩阵
log(A) 表示以A元素的对数形成新矩阵
abs(A) 表示将A矩阵的每一个元素绝对值
floor(A) 表示将A的每个元素向下取整
ceil(A) 表示将A的每个元素向上取整
pinv(A) 求A的逆矩阵(若A无逆矩阵,可以求得伪逆)
A+1 表示将A的每一个元素加1
A' 表示求A的转置
(2)关于矩阵局部的运算
①max()
* 对于行数>1的矩阵来说: max(A) 表示将矩阵中每一列中最大的元素,以行矩阵输出
对于行数=1的矩阵来说:max(a) 表示找一行中最大的元素
由此可得到:找矩阵中最大元素的方法——max(max(A))或者max(A(:))
* max(A,B) 表示对于行列数相同的A和B,新的矩阵的元素为相应位置A和B中大的那个
* max(A,[],1) 求每一列的最大值,以行矩阵输出;
max(A,[],2) 求每一行的最大值,以列矩阵输出;
② find()
* [r,c]=find(A<5) 会将A中满足<5的元素的位置分别放入变量r和c中(r和c均为列矩阵)
③sum()
* 对于行数>1的矩阵来说:sum(A) 表示将矩阵中每一列求和,以行矩阵输出
对于行数=1的矩阵来说:max(a) 表示将一行元素求和
由此可得到:找矩阵所有元素的方法——max(max(A))或者max(A(:))
④