一、基本运算
1、基本计算
1+1、1-1、1*1、1/1、2^3、1 == 2、1 ~= 2(不等于)、1 && 0、1 || 0、xor(1,0)
[0:0.01:0.98] //取从0到0.98的所有值,精度0.01
2、矩阵和向量
定义矩阵: A = [1 2;3 4;5 6] 索引第三行第二列:A(3,2)
给矩阵A增广一列:A = [A ,[1 ;2 ;3 ] ]
把A中的所有元素组成一个列向量:A( : )
定义行/列向量:a=[1 2 3] / a = [1 ;2 ;3 ]
生成特殊矩阵:ones(2,3) zeros(2,3) rand(2,3)
randn(2,3) %服从正态分布的随机数2*3矩阵
eye(3) %三阶单位矩阵
矩阵中相对应位置做运算:A .^2 / A .* B
矩阵转置:A’ / A.transpose()
求向量中最大的两个值:[a,b] = max( c )
显示满足条件的元素:find(a < 3)
生成魔方阵(每行/列/对角线之和均相等):A = magic(3)
二、一些操作指令
1、注释: %输入注释
2、更改输出格式: PS1(’>> ');
3、命令显示字符串: disp(a) 、disp(sprintf(‘2 decimals: %0.2f’,a))
4、更改输出数字格式长短: format long \ format short
5、帮助: help 需要查找的语句
6、查看矩阵尺寸: size(A) 查看矩阵/向量维度:length(A) / length([1;2;3;4])
7、在一行多个命令中, ‘,’逗号和‘;’分号都可以连接两个语句,逗号连接时语句会编译执行,分号不执行
三、存储和删除指令
1、查看octave当前所处路径:pwd
2、改变路径:cd ‘D:\桌面’
3、查看当前路径所有文件:ls
4、加载文件:load(‘a.dat’) / load a.dat
5、查看octave在工作空间中的所有变量:who / whos
6、删除变量:clear X 删除所有变量:clear
7、把Y的前10个数存到v中:v = priceY(1:10)
8、将v保存存到硬盘并且命名为 hello.mat:save hello.mat v
save hello.txt v -ascii
四、画图指令
1、直方图: hist(w) , hist(w,50) //50是取样频率
2、画函数图:plot(x,y,‘r’) //r表示红色
3、保持之前画的图像到下一个图像中 hold on
4、标记横/纵坐标:xlabel (‘time’) / ylabel(‘value’)
5、标记图中的函数曲线:legend(‘sin’,‘cos’) //按照画图的顺序标记
6、标题:title(‘my plot’)
7、保存函数图:print -dpng ‘myPlot.png’
8、关闭图像:close
9、为不同图像标号,使其显示在两幅图中:figure(1); plot(t,y1);
10、给图像分成1*2的格子,并且取第一块:subplot(1,2,1)
11、设置轴的范围:axis([0.5 1 -1 1])
12、清空图像:clf
13、可视化矩阵:imagesc(A)
14、改变矩阵颜色为灰度:colorbar, colormap gray
五、控制语句
1、for循环
for i = 1:10,
disp(i);
end;
2、while循环
i = 1;
while(i <= 5),
v(i) = 100;
i = i + 1;
end;
3、if语句
if v(1) == 1,
disp('The value is one');
elseif v(1) == 2,
disp('The value is two');
end;
六、函数
函数文件以.m结尾命名。示例内容如下:
function [y1,y2] = squareThisNumber(x)
y1 = x^2;
y2 = x^3;
如果需要调用函数,则应该把函数文件放在和octave同一个路径中。或者,可以利用以下代码添加octave的搜索路径。
% Octave search path (advanced/optional)
addpath('函数所在的路径')