目录
一、界面认识
1、新建脚本:生成*.m文件,同时打开编辑器;
2、打开:打开文件夹中的m文件;
3、两个快捷键:Ctrl+N(新建脚本,脚本名字带*表示脚本没有保存),Ctrl+S(保存文件)
4、文件夹路径:在命令行窗口上面那一行路径,可以快速切换到你的该路径,在“当前文件夹”窗口显示该路径下所有.m文件
5、clc:在命令行窗口清除当前页面的所有文本
6、clear all:清除工作区的所有变量
7、注释:Ctrl+R(注释),Ctrl+T(撤销注释)
8、分号、冒号、逗号
程序命令后面加分号时,运行结果在命令窗口不显示。 不加分号时,当点击回车时,运行结果就会立即显示出来!
二、命名
1、变量的命名规则:
2、脚本名的命名:尽量也以字母开头命名,由字母、数字、下划线组成,不使用标点
三、数据类型
(一)数字
(二)字符与字符串
1、abs(字母):字符串转ASCII码
2、char(数字):ASCII码转字符串
3、num2str(): 将数值数组转换为表示数字的字符串
4、length():计算字符串长度
(三)矩阵
1、矩阵A=[1 2 3;4 5 6;7 8 9]:用中括号表示,分号表示换行,空格或逗号分隔数字
2、B=A':右上引号’表示对矩阵转置
3、C=A(:):按列依次把m*n的矩阵排列成(m*n)*1的矩阵,该矩阵只有一列
4、D=inv(A):求矩阵A的逆矩阵,矩阵A必须是方阵
5、E=zeros():
E = zeros (返回标量 0)
E = zeros(n) (返回一个 n×n 的全零矩阵)
E = zeros(sz1,…,szN) (返回由零组成的 sz1×…×szN 数组,其中 sz1,…,szN 指示每个维度的大小。例如,zeros(2,3) 将返回一个 2×3 矩阵)
E = zeros(sz) (返回一个由零组成的数组,其中大小向量 sz 定义 size(X)。例如,zeros([2 3]) 将返回一个 2×3 矩阵)
6、rand,randn,randi
(四)元胞数组
1、元胞数组
下标从1开始
官方详细介绍:元胞数组 - MATLAB- MathWorks 中国
2、magic幻方矩阵
官方详细介绍:幻方矩阵 - MATLAB magic
(五) 结构体
结构体相当于python中的字典
1、结构体定义
2、books.name:提取books结构体中的属性name
3、books.name(1)、books.name{1}:输出一个有单引号,一个没有;前者的ans是cell,后者的ans是值,在下例中就是字符串
四、矩阵构造和四则运算
1、矩阵的基础构造
2、B=a:b:c :利用冒号表达式创建矩阵或数组,a为初始值,b为步长,c为终止值(c>a)。冒号表达式可产生一个由a开始到c结束,以步长b自增的行向量。在冒号表达式中如果省略b,则步长默认:1.例如,t=0:5与t=0:1:5等价。
3、B=repmat(A):repmat函数用于将一个矩阵或向量复制多次以形成更大的矩阵。其中A是要复制的矩阵或向量,m和n是要复制的次数。其中B的维度为[size(A,1)*M, size(A,2)*N],其实就是把A当做一个元素,让后生成一个M*N的矩阵,该矩阵的每个元素位置放置一个A。
4、X=ones(n):返回一个n×n的全1矩阵
F = 2*ones(4,5) :返回一个4×5的全2矩阵
5、矩阵的四则运算
A = [1 2 3 4;5 6 7 8]
B = [1 1 2 2;2 2 1 1]
C = A + B %矩阵对应项相加
D = A - B %矩阵对应项相减
E = A * B' %矩阵A与矩阵B的转置相乘
F = A .* B % 矩阵A与B的对应项相乘
G = A / B % 矩阵没有除法,相当于A* B的逆。inv(B) 为求B的逆矩阵
H = A ./ B % 对应项相除
五、矩阵的下标
B=A(2,3):取出2行2列的元素
C=A(3,:):取出第3行
C=A(:,4):取出第4列
A(n):取出第n个元素(从上往下,再从左往右数)
[m,n] = find(A > 20):找出大于20的序号值/矩阵,返回的是索引值,结果为m=...,n=...
六、程序结构
1、for...end:
2、if...else...end:
3、while...end:
4、switch...case...end:
七、二维平面绘图
(一)绘制正弦函数sinx
绘图必须得有初始值
x = 0 :0.01:2*pi % x取1到2pai的数,公差为0.01
y = sin(x)
figure % 建立幕布,有的时候可以没有
plot(x,y) % 绘制当前的二维平面图
title(‘ y = sin(x) ’) % 给图添加标题y = sin(x)
xlabel(‘x’) % 添加横坐标标签
ylabel(‘sin(x) ’) % 添加纵坐标标签
xlim([0 2*pi]) % x轴的限制长度为0到2pai
运行结果:
(二)其他参数设置
(三)更丰富的绘图
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x); %虚线的表达式
y2 = 0.8*exp(-0.05*x).*sin(10*x) ; %冒号线的表达式
figure %设置一个幕布
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); %plotty共用一个x轴坐标系 H1,H2变量名字 H1是y1,H2是y2
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time (\musec)') %x轴标签
title('Multiple Decay Rates') %标题 Multiple Decay Rates 多重衰减率
set(H1,'LineStyle','--') %设置H1对应线条的形式为虚线
set(H2,'LineStyle',':') %置H2对应线条的形式为冒号线
运行结果:
八、三维立体绘图
(一)基础绘图
t = 0+pi/50:10*pi;
plot3(sin(t),cos(t),t) % 三维
xlabel('sin(t)') % x轴的标签,单引号代表着字符串
ylabel('cos(t)') % y轴的标签,单引号代表着字符串
zlabel('t') % z轴的标签
grid on % 在图片中加网格线
axis square % 起到限制的作用,各个方向都变成正方形
运行结果:
(二)图形的保存与导出
1、图片框→编辑→复制图形→就可以在word中粘贴了
2、图片框→文件→另存为→保存类型为 MATLAB Figure(*.fig)→可以下次在matlab中用这张图
3、图片框→编辑→复制选项→可以调节现在图片的一些设置
4、图片框→编辑→图形属性→跳出面板,调节图片属性
5、图片框→文件→导出设置→设置图片大小等参数→应用于图形→复制到word(小图片也很清晰
九、图形窗口的分割
subplot(a,b,c):将整个绘图区域分成 a行和 b列,然后从左到右,从上到下的顺序对每个子区域进行编号 1...N ,左上的子区域的编号为 1、右下的区域编号为 N,编号可以通过参数 c 来设置。