简单的MATLAB 代码
常用函数
数字类
inf 无穷
sqrt 平方
nthroot(x,n)开n次方
abs 绝对值
angle 俯角
conj 复共轭
mod 取余数
imag 虚部
real 实部
fix 向0取整
floor 向负无穷取整
ceil 向正无穷取整
round 四舍五入
ren(a,b) 计算A/B的余数
向量类
== 向量运算符号前面必须有. ==
A(1:3)取从1到3
A(1:end) 从1取到尾
A([2,4,5])取第二个第四个第五个
mean(x) 平均值
median(x) 中位数
std(x) 标准差
sort(x) 排序
dot(x) 内积
cross(x) 外积
lenth() 查看大小
矩阵
“;”换行 同一行内“,”隔开
A’ 为A的转置
diag(a)创建对角矩阵
det(a) 求行列式
inv(a)求逆
size(a) 取a的大小
eig(a) 取a的特征值
ones(a) 大小为a的1矩阵
zeros(4,3) 大小为4,3的0矩阵
eye(5)对角矩阵
A(2:4,1:3)选取A第2行到第4行的1到3列
A(2:4,[1,3])选取A第2行到第4行的1和3列
A[CD]拼接CD
作图
二维
x=0:0.1:2*pi;
plot(x1,y1,'s1',x2,y2,'s2',...xn,yb,'sn'));
title('y1');
grid on
x范围0-2pi,分度值0.1 画图y1-yn
sn表示线的颜色及其类型
title()用来给图标题
grid画分隔线
可以用subplot(m,n,k)来把屏幕分成m*n个 把图画在第k个
直方图
X=normrnd(10,5,1000,1);
hist(X);
[count,center]=hist(X);
bar(center,count);
这里normrnd生成1000个一列的,标准差为5,10为均值的数据
hist可以直接作图,但是利用hist返回的位置向量(center)和频率计数(count)再利用bar作图
立体图
plot3(x,y,z,'s');
类似二维
三维曲面
XYZ为矩阵
[X,Y]=meshgrid(-3:0.1:3,-4:0.1:4);
mesh(X,Y,Z);
surf(X,Y,Z);
Z=cos(X).*sin(Y);
xlabel('x');
ylabel('y');
zlabel('z');
.*让XY矩阵对应相乘,xyz轴分别对应xyz
surf 可以带阴影
基本语句
循环(for,while)
大体类似C语言
for x=a:d:b(
command
)
end
a为起始点b为终止点d为间隔
while(表达式)(
command
)
end
符合表达式就一直循环
条件(if else)
类似C语言不赘述
脚本制作
.m文件
%开头为注释
function [x]=test
command
end
%调用时:
test(x);
也可以用匿名函数
test=@(x)x^2
test(2)
=4