1. 普通
t1 : t2 : t3;
从t1到t3,间隔取t2
linspace(始,终,元素个数);
= [];
用 [] 赋值,删除元素
x = 12345;
s = num2str(x);
数字转字符串
ceil(x);
向上取整
floor(x);
向下取整
round(x);
四舍五入取整
rand(l,m,n);
生成l*m*n矩阵,矩阵元素为0-1之间的随机数
A’
矩阵A共轭转置
A.’
矩阵A转置
conj(A)
矩阵A共轭
2. 矩阵
length(A) = max(size(A));
A(end,:);
矩阵A最后一行
A(:,end-1);
矩阵A倒数第二列
eye(n);
生成n阶单位阵
prod(A);
矩阵A各列连乘
min(A);
取矩阵A各列最小值
[x,I] = min(A);
取矩阵A各列最小值及其下标
max(A,[],dim);
当dim为2时,返回矩阵A每行最大值
C = max(A,B);
返回A,B矩阵同位置较大值组成的矩阵(A,B须为同型矩阵)
C = max(A,n);
返回A的同型矩阵,各位置取A和n中较大的值(n为数字)
mean(A);
取每列平均值
mean(A,dim);
当dim为2时,取矩阵A每行平均值
median(A);
每列中位数
median(A,dim);
当dim为2时,取矩阵A每行中位数
all(A);
返回矩阵A每列所有元素相与后所得的行向量
any(A);
返回矩阵A每列所有元素相或之后所得的行向量
find(A > 5);
返回由矩阵A中所有大于5的元素的一维下标所组成的列向量
[x,y] = find(A > 5);
返回由矩阵A中所有大于5的元素的二维下标所组成的列向量
sort(A);
返回矩阵A每列升序排序的结果
sort(A, 2, ’descend’);
返回矩阵A每行降序排序的结果
flipud(A);
将矩阵A上下反向
fliplr(A);
将矩阵A左右反向
reshape(A,m,n);
将矩阵A的size变为m行n列。改变的宗旨是按照绝对下标。
绝对下标的排布永远是以列优先。
3. 多项式
interp1(x,y,x1,’method’);
一维插值,x,y为已知点的横纵坐标向量,x1为所求点的横坐标向量。’method’为插值方法,有’linear’, ’nearest’, ’spline’等
interp2(r,s,t,x,y,’method’);
二维插值,r,s为已知点横纵坐标矩阵,t为已知点的值,x,y为待求点坐标矩阵
[P,S] = polyfit(x,y,m);
多项式拟合,x,y为已知点坐标列表,m为拟合阶数;返回P为系数列表,S为采样点误差
y = polyval(P,x);
多项式求值,P为系数列表,x为自变量数值列表
P3 = conv(P1,P2);
多项式相乘
P_dev = polyder(P);
多项式求导
[P_dev,Q_dev] = polyder(P,Q);
多项式(P/Q)求导
x = roots(P);
求多项式零点
4. 输入输出
A = input(‘输入提示’);
用户输入矩阵赋值给变量A
s = input(‘输入提示’, ’s’);
用户输入字符串并赋给变量s
disp(x);
输出显示(不显示变量名)
5. 符号变量
syms a b c d;
定义符号变量
syms x;
f = 1/(2*x);
定义符号表达式
factor(f);
分解因式,f为符号表达式
simplify(f);
化简
limit(f,x,a);
求极限f(x->a),f为符号表达式,x,a为符号变量
diff(f,x,n);
对f求x的n阶导,f为符号表达式,x为符号变量,n为数字
int(f,x);
求f对x的不定积分,f为符号表达式,x为符号变量
int(f,x,x1,x2);
求f对x的定积分
syms x;
sovle(x^4+1 = x^2 +1);
解单变量方程
syms x y;
sovle(x*y+2 = y, y);
解关于y的方程
syms x y;
solve(x^2+y^2 = 1, x+y = 1);
方程联立求解
F = fourier(f,x);
求傅里叶变换,f为符号表达式,x为符号变量,f是关于x的函数,返回的是变换后的符号表达式
f = ifourier(F,x);
求傅里叶逆变换
F = laplace(f,x);
求拉普拉斯变换
f = ilaplace(F,x);
求拉普拉斯逆变换
symsum(a,x,x0,n);
级数求和;a为符号表达式,x为符号变量,x0,n为数字;a为关于x的表达式,x为自变量,x0为自变量初值,n为所求级数数量,无穷则为“inf”
taylor(f,x,x0,’order’,n);
将函数f(x)在x=x0处进行n阶泰勒展开,f为符号表达式,x为符号变量,x0,n为数字,’order’为固定字符串,表示阶数
f = poly2sym(P);
由多项式系数向量产生符号表达式
6. 图像操作
grid on
加网格线
grid off
去网格线
hold on
保持当前figure
plot(x,y,’CLM’);
设置,C为颜色,L为线型,M为数据点形状
plot(X,Y,’LineWidth’,2,’Color’,[.6 0 0])
设置线宽、颜色
axis([xmin,xmax,ymin,ymax]);
限定图像轴长
axis square;
将图像坐标范围限定为正方形
set(gca,’ytick’,[x1,x2,x3]);
gca表示指向当前句柄,’ytick’表示在坐标轴上显示设定的坐标值
subplot(m,n,i); plot(x,y);
一张图里有m行n列个子图,在第i个子图中plot
title(‘标题’);
给当前图像加标题
title(‘\fontsize{18} 标题’);
给当前图像加标题并设置标题字体大小
一般标题18号,x轴y轴16号,图例12号
xlable(‘x轴名称’); ylable(‘y轴名称’);
给坐标轴命名
legend(‘图线1’, ‘图线2’, ‘图线3’);
加图例
text(x,y,’文字’);
在图像上x,y坐标处加文字
gtext(‘文字’);
在图像上加文字,位置由鼠标点击
repmat(A,m,n);
重复矩阵A,m行n列
plot3(x,y,z);
画三维曲线
mesh(x,y,z);
surf(x,y,z);
画三维曲面,x,y为二维矩阵,z为x,y的函数,也是二维矩阵。mesh只有格线,surf能填充颜色
meshc(x,y,z);
画等高线图
x = [-3:3]; y = [1:5]; [x,y] = meshgrid(x,y);
生成画曲面所需的自变量二维矩阵
polar(theta,r);
画极坐标图
Hf = figure;
建立一个图形窗口,返回它的句柄值
figure(Hf);
激活句柄Hf
Hf = gcf;
获取当前图像句柄(get current figure)
Ha = gca;
获取当前坐标系句柄(get current axis)
Hx = gco;
获取当前对象句柄(get current object)
saveas(Hf,’title.jpg’);
保存图像并指定图像后缀名
fill(X,Y,C);
为平面图像填充颜色;
X、Y、C均为行向量;
X包含了一个封闭图形(一小格)各顶点的横坐标;
Y包含了一个封闭图形(一小格)各顶点的纵坐标;
C包含三个元素,分别为R、G、B值,大小均在0~1之间;
每次只能填充一小格,需要用循环对整体进行填充;
使用fill之前记得把原图hold on住。