% 注释标识
基本运算
逻辑运算:
1==2 返回0,即false
~= 不等于
&& || XOR()
输出或打印控制:
赋值后加分号将不在屏幕上打印任何内容如, 比较a=3; a=3 的区别
Disp(sprint(‘2 decimals: %0.2f’,a))) 或命令行中 format long, format short
矩阵生成:
A=[1,2; 3,4;5,6] V=[1,2,3]
Eye(3) %生成单位矩阵,对角线上是1
获取矩阵属性:
Size(A) %行列值,如3*2 的3,2
Size(A,1) %行数
Size(A,2) %列数
Length(A) %最大维度的大小,如3
Length([1;2;3;4;5]) %返回5, 这里数据是向量,不是矩阵
加载或保存数据:已有一些保存数据的文件,如mydata.dat
到保存文件的路径中,命令行中输入 mydata.dat 或load(“mydata.dat”)
Who %显示当前workspace中的变量名
Whos %显示当前workspace中的变量名、维度、容量及统计信息
Clear var_name %清除某个变量名
Clear %清除workspace中所有变量
V=mydata.dat(1:10) %取前10个数据存在V中
Save hello.mat V %保存变量V到hello.mat文件中
Save hello.txt v –ascii %保存成文本文档
作数据:A为3*2矩阵
A(3,2) %第三行第二列的元素
A(2,:) %第二行的所有元素,A(:,2) 第二列的所有元素,:冒号表示该行或列的所有元素
A([1,3],:) %A中第一个索引值为1和3的元素
A(2,:) = [4,6] % 为第二行赋值
A=[A,[3,5,7]] %在A右边新增一列,变成3*3
A(:) %把A中所有元素变成一个单独的列向量,即6*1(未扩展右边一列的情况下)
C=[A B] 或[A,B] %A 3*2, B3*2, C为3*4, 矩阵合并
C=[A;B] %C为6*2, 分号表示换到下一行
D=A+ones(length(A),1) %A的每个元素加1,或 D=A+1
Val=max(A) % 每列的最大值形成的向量给val
[val, index] = max(A) %j最大值给val, 对应的index给indiex
Max(A,[],1), max(A,[],2) %分别返回每一列、行的最大值,最后形成向量
Max(max(A)) %整个矩阵的最大值, 或max(A(:)) 把A转化为向量再max
Sum(sum(A.*sys(length(A))) %求对角线的和
A < 3 %逐个元素比较,小于3的返回0,大于的返回1
[r,c]Find(a<3) %小于3的index,行列index分别存于r,c中
A=magic(4)
Sum(A), prod(A), %求和,求积
Sum(A,1), sum(A,2) %每列,每行求和,1对应列,2对应行
floor(A), ceil(A) %向上向下四舍五入
temp=pinv(A) % 求逆,temp*A=单位矩阵
矩阵计算:
C=A*B %满足乘法对维数的要求
C=A.*B %元素点乘,ABC的维数相同
C=A.^2 %A的每个元素平方
C=1./A %点除
还可以对元素使用不同的数学函数,如log(C), exp(A), abs(A), -C,
绘图:
直方图:hist(w), hist(w, 50) % w=-6+sqrt(10)*randn(1,10000)) 符合正态分布的矩阵
Plot(x,y1), hold on, plot(x,y2) % hold on 将在y1的图上再画y2
Plot(x,y,’r’) %’r’表示红色,不同字母代表不同颜色
Xlabel(‘time’), ylabel(‘value’), legend(‘sin’,’cos’), title(‘myplot’) %x,y轴名称,图例名称,标题
Print –dpng ‘myplot.png’ %把画的图保存下来
Close 将关掉这个图像
Figure(1); plot(t,y1) %显示第一张图,绘制t,y1
Figure(2); plot(t,y2) %显示第一张图,绘制t,y2
Subplot(1,2,1) %根据参数把图像分为1*2的格子
Subplot(1,2,1); plot(t,y1) %在第一个格子中画t,y1
Subplot(1,2,2); plot(t,y2) %在第一个格子中画t,y2
Axis([0.5 1 -1 1 ]) %调整x,y的范围为x (0.5~1), y (-1~1)
Clf %清除一张画像
颜色格图:
Imagesc(A); colorbar, colormap gray %生成颜色图像,灰度分布图,并在右边加一个颜色条
逗号与分号的区别:
逗号:将多条命令写在同一行中,也可理解为连续执行;
分号:间隔为单独一条命令
控制语句:
For while if break continue end
For i=1:10, v(i)=2^I; end; v;
或indices=1:10; for i=indices, disp(i);end;
If v(1)==1, xxxxx; elseif v(2)==2 xxx; else xxxx; end; exit; %执行完退出Octave,或quit
函数:
SquareThisNumber.m 文件
Function y = squareThisNumer(x)
Y=X^2
或function [a,b] = squareAndCubeThisNumber(x)
a=X^2; b=x^3;
函数的搜索路径:addpath可添加相关路径; search path 进行搜索比如squareThisNumber这个函数
向量化:
H(theta)=theta(T)* X %向量化可大大提高计算效率