(一)Octave–移动数据
1、size()、length()命令
size(A)得到矩阵A的大小,即几行几列;size(A,1)表示几行,size(A,2)表示几列。length(v)一般用于求向量的维度,也可以求一般矩阵中行数列数中较大的那个数。
2、下载文档中的数据
将存在电脑上的某个数据文件featuresX.dat和priceY.dat(假设这两个文件目前放在我桌面)下载到Octave中怎么做:
>>pwd
>>cd 'C:\Users\chen\Desktop'
>>load featuresX.dat
>>load priceY.dat %或者写成load('priceY.dat')
然后输入:who可以查看当前软件中存在的所有变量(可以看到featuresX也在),输入featuresX即可查看这个文件中的所有数据了。
>>who
>>featuresX
who可以显示变量名,whos则可以显示更详细的信息(包括变量类型,size等);如果你想删除某个变量,可以输入clear 变量名。
如果想将文件priceY.dat中的前10个元素赋值给v向量,那么输入命令v=priceY(1:10)即可;然后想将v保存在hello.mat文件中,输入命令save hello.mat v即可(存储成二进制形式);如果想要存储成文本文档,那么应该输入命令save hello.txt v -ascii。
输入clear命令可以清除所有变量;
>>whos
>>clear featuresX
>>v=priceY(1:10)
>>save hello.mat v
>>save hello.txt v -ascii
>>clear
3、矩阵元素的表示方法
A(3,2)表示矩阵A中第三行第二列的元素;A(2,:)表示矩阵A中第二行所有元素;A([1,3],:)表示矩阵A中索引为1和3的所有元素,也就是第一行和第三行的所有元素。
A(:,2) = [10; 11; 12]表示给矩阵A的第二列重新赋值;A = [A,[100; 101; 102]]表示给矩阵A增加一列元素;A(:)表示将矩阵A中的元素放入一个单独的向量中。
4、快速组合矩阵
(二)Octave–计算数据
1、设A,B,C都是矩阵,v是向量。
>>A*C %表示的是矩阵A与矩阵C相乘
>>A .*C %表示矩阵A与矩阵C对应位置的元素相乘
>>A .^2 %表示矩阵A中每个位置上的元素都平方
>>1 ./A %表示矩阵A中每个位置上的元素的倒数
>>log(A) %表示矩阵A中每个位置上的元素求对数
>>exp(A) %表示矩阵A中每个位置上的元素作为指数的幂运算
>>abs(A) %表示矩阵A中每个位置上的元素取绝对值
>>-A %表示矩阵A中每个位置上的元素取相反数
>>v+1 %表示向量v中每个位置上的元素+1
2、矩阵的转置
3、向量a实际举例
max(a)可以找到向量a中的最大元素; [val,ind]=max(a)表示找到向量a中最大元素的值和对应索引,分别赋值给val和ind。
a<3是对向量a中每一个元素分别对应去判断;find(a<3)是返回a<3的所有元素对应的索引。
4、幻方矩阵
幻方矩阵是指每一行、每一列、每一对角线上相加得到的值都等于同一个数的矩阵。用magic命令产生幻方矩阵。
[r,c] = find(A>=7)查找矩阵A中大于等于7的元素的行号、列号;
sum(a)表示对向量a所有元素求和,prod(a)表示求向量a所有元素的乘积;
5、其他命令
floor(a)表示对向量a所有元素向下取整(即舍弃小数点后的数字),prod(a)表示求向量a所有元素的向上取整;
max(A,[ ],1)表示找到矩阵A中每一列的最大值,这里的1表示从第一维度也就是列中去取;max(A,[ ],2)表示找到矩阵A中每一行的最大值,这里的2表示从第二维度也就是行中去取。max(A)则是默认取每一列最大值。
如果要求整个矩阵中最大的元素,可以输入max(max(A))或max(A(😃)。
再设一个奇异矩阵,sum(A,1)求出每一列元素之和;sum(A,2)求出每一行元素之和;
sum(sum(A.*eye(9))表示算左对角线元素之和(左上角到右下角),sum(sum(A.flipud(eye(9))))表示算右对角线元素之和(左下角到右上角);
pin(A)求A的逆矩阵。