文章目录
1. 清空环境变量和命令
clear all %清除Workspace中的所有变量
clc %清除Command Window中的所有命令
2. 变量名
以字母开头,可以由字母、数字、下划线组成,但不能使用标点
3. 数据类型
3.1 字符和字符串
s = 'a';
abs(s) %ASIIC码
char(97) %a
length(str)
3.2 矩阵
A = [1 2 3;4 5 2;3 2 7;4 6 8]
B = A' %转置,行列互换
C = A(:) %A矩阵拉长,竖着拉长,竖着方向1 4 3 4 2 5 2 6...
D = inv(A) %求矩阵的逆矩阵,矩阵必须为方阵
A * D
E = zeros(10,5,3) %10行5列3维全为零
E(:,:,1) = rand(10,5) %rand(m,n)生成m行n列的均匀分布伪随机数,每个数在(0~1)之间
E(:,:,2) = randi(5,10,5)%randi(iMax,m,n)生成开区间(0,iMax)m行n列的伪随机整数
E(:,:,3) = randn(10,5)%生成10行5列,标准正态分布的矩阵,方差为1,均值为0
4. 元胞数组和结构体
元胞数组类似盒子,一层一层
A = cell(1,6)%1行6列,a = b =666右侧的值给左侧
A{2} = eye(3)%eye生成3*3对角线为1的单位矩阵,MATLAB从1开始,2表示第2个盒子
A{5} = magic(5)%magic生成幻方,横竖斜的数字之和均相等
B = A{5}
5. 结构体
- 相当于字典
- name相当于python中的键,后面两个字符串相当于python中的值
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
books.name %属性
books.name(1)%小括号取出来的是cell
books.name{1}%{}取出来的是字符串
6. MATLAB矩阵
6.1 矩阵的定义与构造
A = [1 2 3 4;5 6 7 8]
B = 1:2:9 %起始点为1,终止点在此范围内,步长为2。1 3 5 7 9
C = repmat(B, 3, 1)%重复B 3行1列
D = ones(2,4)%2行4列的1
6.2 四则运算
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 %加"."表示对应项相乘
G = A / B %G*B=A G*B*pinv(B)=A*pin(B) G=A*pinv(B),相当于A乘B的逆,inv(B)就是逆
H = A./B %对应项相除
6.3 矩阵的下标
A = magic(5) %生成5*5的幻方矩阵
B = A(2,3) %取2行3列的数
C = A(3,:) %冒号表示取的全部,表示取第3行
D = A(:,4) %表示取第4列
[m,n] = find(A > 20)%找大于20的序号值/矩阵
7 MATLAB基本绘图操作
7.1 二维绘图
x = 0:0.01:2*pi;
y = sin(x);
figure %建立一个幕布
plot(x,y)
title('y = sin(x)')%标题
xlabel('x')%x标签
ylabel('sin(x)')%y标签
xlim([0 2*pi])%x坐标的值在0~2pi
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
figure
[AX,H1,H2] = yyaxis(x,y1,x,y2,'plot');%plotyy表示共用一个坐标
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time(\musec)')
title('Multiple Decay Rates')
set(H1,'LineStyle','--')%--表示虚线
set(H2,'LineStyle',':')%:表示点线
7.2 三维绘图
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
hold on %同一个幕布绘制多条线
%hold off %表示不保存当前东西
grid on %加网格线
axis square %把各个坐标方向变成一个正方形
[x,y,z] = peaks(30);%peaks用于产生双峰函数绘图
mesh(x,y,z)
grid
8 间隔取值
i=1:8:N;%从1到N,间隔8取值
j=ceil(i/8);%ceil表示取大于i/8的最小整数值