1. 界面认识
- 命令行输入clc:清除命令行窗口
- 命令行输入clear all:清除右侧工作区
- %:注释代码
2. 变量命名
3. 数据类型
- 数字:abs()
- 字符与字符串:字符串用单引号、char()、length()
- 矩阵
A=[1 2 3; 4 5 6; 7 8 9]
B=A' % 转置
C=A(:) % 竖向拉长
D=inv(A) % 求逆
A*D
E=zeros(10,5,3) % 10行5列3维
E1=rand(10,5) % 0-1之间均匀分布的伪随机数
E2=randi([3,7],10,5) % 固定范围的随机整数
E3=randn(10,5) % 标准正态分布的伪随机数(均值为0,方差为1)
A=cell(1,6) % 1行6列的元胞数组
A{2}=eye(3) % 3行3列的单位阵
A{5}=magic(4) % 4阶幻方
books=struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
books.name
books.name(1) % 1×1cell
books.name{1} % 字符串
4. 矩阵构造和四则运算
A=[1 2 3 4 5 6]
B=1:2:9 % 范围为1-9,步长为2
C=repmat(B,3,2) % 让B矩阵重复3×2次
D=ones(4,4) % 生成1个4×4的全1矩阵
应用:
解线性方程组:
A=[5 6 -12; 6 5 -2; 4 -9 2;]
B=[1 129 17]'
invA=inv(A)
X=invA*B
A=[1 2 3 4; 5 6 7 8]
B=[4 3 2 1; 8 7 6 5]
C=A+B
D=A-B
E=A*B' % 矩阵相乘,A的行=B的列
F=A.*B % 对应项相乘
G=A/B % G*B=A
H=A./B % 对应项相除
A=magic(5)
B=A(2,3) % 取A矩阵第2行第3列的数
C=A(3,:) % 取A矩阵的第3行
D=A(:,4) % 取A矩阵的第4列
[m,n]=find(A>15) % 找出A矩阵中大于15的数,并用下标表示出来
5. 程序结构
% 求1-5平方的和
sum=0;
for i=1:5
sum=sum+i^2;
end
a=100;
b=20;
if a>b
'成立'
else
'不成立'
end
% 求1-10的和
sum=0;
n=1;
while n<=10
sum=sum+n;
n=n+1;
end
6. 二维平面绘图
示例1:
x=0:0.01:2*pi;
y=sin(x);
figure % 幕布
plot(x,y)
title('y=sin(x)')
xlabel('x')
ylabel('sin(x)')
xlim([0 2*pi])
示例2:
x=linspace(0,30,500); % 0-30之间500个元素
y=x.*sin(x); % 增益正弦函数
plot(x,y,'LineWidth',1.5); % 线宽为1.5
title('增益正弦函数');
xlabel('\alpha');
ylabel('sin(\alpha)');
legend('sin(\alpha)'); % 插入线形标注
text(2,2*sin(2),'\rightarrow Okey!'); % 插入文字和箭头
grid on; % 显示网格线
box on; % 显示坐标轴框
示例3:
x1=linspace(0,2*pi,100);
x2=linspace(0,3,100);
y1=1/3*x1.*sin(2*x1);
y2=x2.^2+2*x2;
plot(x1,y1,'r:',x2,y2,'b--');
示例4:
x=linspace(0,2*pi,60);
subplot(2,2,1);
plot(x,sin(x)-1);
title('sin(x)-1');
axis([0,2*pi,-2,0]);
subplot(2,1,2);
plot(x,cos(x)+1);
title('cos(x)+1');
axis([0,2*pi,0,2]);
subplot(4,4,3);
plot(x,tan(x));
title('tan(x)');
axis([0,2*pi,-40,40]);
subplot(4,4,8);
plot(x,cot(x));
title('cot(x)');
axis([0,2*pi,-35,35]);
7. 三维立体绘图
示例1:
x=0:pi/50:10*pi;
plot3(sin(x),cos(x),x);
xlabel('sin(x)');
ylabel('cos(x)');
zlabel('t');
grid on;
axis square; % 将当前坐标系图形设置为方形
示例2:
[x,y,z]=peaks(30);
mesh(x,y,z);
grid on;
8. 线性规划
线性规划的matlab的标准形式如下:
(1): −x(1)−x(2)/3
(2):
(3): x(1)+x(2)/4=1/2
(4): −1≤x(1)≤1.5, −0.5≤x(2)≤1.25.
f=[-1 -1/3]; #目标函数
A=[1 1
1 1/4
1 -1
-1/4 -1
-1 -1
-1 1]; #不等式约束条件矩阵
b=[2 1 2 1 -1 2]; #对应不等式右侧的矩阵
Aeq=[1 1/4]; #等式约束条件矩阵
beq=1/2; #对应等式右侧的矩阵
lb=[-1 0.5]; #下界
ub=[1.5 1.25]; #上界
x=linprog(f,A,b,Aeq,beq,lb,ub);
9. 积分
f=@(x) (sqrt(4-sin(x).^2));
y=integral(f,0,pi/6);
f=@(x) exp(-x.^2);
y=integral(f,0,1);