Matlab 实用笔记(纯干货)

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住。

    原文作者:Wh_Fanatic
    原文地址: https://www.jianshu.com/p/07915677e10a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞