Octave(Matlab)语言
本文中的所有Octave语言均适用于Matlab语言,很多语言和Linux命令语言类似,可以结合学习,内容较多但是很详细,适合初学者,建议收藏。很多学习笔记都在代码行注释里面了,都是心血啊~~
1. 矩阵运算
>>A*C %矩阵A乘矩阵B
>>A .* B %矩阵A与矩阵B每一个对应的元素相乘,在Octave(Matlab)中.一般就表示元素位运算
>>A .^2 %表示矩阵A中每个元素进行平方
>>1 ./A %表示矩阵A中每个元素取倒数
>>log(A) %表示矩阵A中每个元素取对数
>>exp(A) %表示矩阵A中每个元素e的幂运算
>>abs(A) %表示矩阵A中每个元素取绝对值
>>-A %表示矩阵A中每个元素取负数
>> v = [1;2;3]
v =
1
2
3
>> v + ones(length(v),1) %表示对v加上(3,1)3行1列且元素均为1的矩阵
ans =
2
3
4
>> v + 1 %同上效果
ans =
2
3
4
>> v' %求矩阵的转置
ans =
1 2 3
>> max(v) %返回矩阵中每一列的最大的元素值
ans = 3
>> A
A =
11 22 33 44
11 1 33 11
22 3 55 22
33 5 66 33
>> [val,ind] = max(A) %返回矩阵中每一列的最大的元素值,以及该值对应的索引
val =
33 22 66 44
ind =
4 1 4 1
>> a = rand(3,4)
a =
0.515514 0.147951 0.496869 0.184304
0.887234 0.219841 0.457777 0.045529
0.890830 0.192137 0.786436 0.016426
>> a < 0.1 %判断矩阵中每个元素是否符合条件,符合返回1,否则返回0
ans =
0 0 0 0
0 0 0 1
0 0 0 1
>> find(a<0.1) %返回矩阵中第几个元素符合条件
ans =
11
12
>>A = migic(3) %生成一个每行每列对角线相加都相等的矩阵
A =
8 1 6
3 5 7
4 9 2
>> [r,c] = find(A >=7) %表示第r行第c列的元素符合条件
r =
1
3
2
c =
1
2
3
>> sum(a) %把a中的每一列元素相加
>> prod(a) %把a中的每一列元素相乘
>> floor(a) %把a中的元素向下四舍五入
>> ceil(a) %把a中的元素向上四舍五入
>> max(rand(3),rand(3)) %返回两个随机生成的矩阵对应元素相对较大的值的矩阵
>> max(A,[],1) %取每一列的最大值
>> max(A,[],2) %取每一行的最大值
>> max(max(A)) %求矩阵A的最大值
>> max(A(:)) %同上,求矩阵A的最大值
>> pinv(A) %对矩阵A求(伪)逆
2. 可视化数据
>> t = [0:0.01:0.98]; %每隔0.01生成一个0到0.98的矩阵
>> y1 = sin(2*pi*4*t); %sin函数
>> plot(t,y1) %生成上面sin函数的图像
>> y2 = cos(2*pi*4*t);
>> plot(t,y2)
>> plot(t,y1)
>> hold on ; %把上面的cos函数图像覆盖到sin函数图像上面
>> plot(t,y2,'r'); %把上面的cos函数图像覆盖到sin函数图像上面,'r'为使用的颜色,也可以是
>> xlabel('time') %加横坐标名称为“time”
>> ylabel('value') %加纵坐标名称为“value”
>>legend('sin','cos') %对曲线进行标记说明
>> title('my plot') %加标题
>> print -dpng 'myplot.png' %在当前路径下,保存格式为png
%注意:如果保存其他路径,则在前面需要加上 cd '保存路径';
>> close %关闭图像
>> figure(1);plot(t,y1); %前面加上figure()就不会覆盖掉之前的图像,而是会重新打开一个图像
>> figure(2);plot(t,y2);
>> subplot(1,2,1);plot(t,y1) %把图像分成两部分,可以放两个图像
>> subplot(1,2,2);plot(t,y2)
>> subplot(2,2,1);plot(t,y1)
>> axis([0.5 0 -1 1]) %改变坐标轴刻度
>> clf; %清除图像为空白
>> A = magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> imagesc(A) %5*5的彩色方格图像
>> imagesc(A),colorbar,colormap gray; %5*5的灰度方格图像
3. 控制语句
基本语句:>> v = zeros(10,1)
v =
0
0
0
0
0
0
0
0
0
0
>> for i =1:10;
v(i)=2^i;
end;
>> v
v =
2
4
8
16
32
64
128
256
512
1024
>> indices=1:10;
>> indices
indices =
1 2 3 4 5 6 7 8 9 10
>> for i = indices,
disp(i);
end;
1
2
3
4
5
6
7
8
9
10
>> i = 1;
>> while i <=5;
v(i)=1000;
i=i+1;
end;
>> v
v =
1000
1000
1000
1000
1000
64
128
256
512
1024
>> i = 1;
>> while true;
v(i)=99;
i=i+1;
if i==6;
break;
end;
end;
>> v
v =
99
99
99
99
99
64
128
256
512
1024
函数调用:
调用所在路径的函数文本(.m文件)
>> addpath('路径') %将路径添加到Octave中的搜索路径中