MATLAB学习——基础学习
编辑时间:2023/10/26
来源:b站爱研究的小阿楠
1.界面介绍
1.1当前文件夹
ctrl+c ctrl+v(注意要是matlab文件)
1.2编辑器
命令行窗口
clc 清除窗口
clear all 清除工作区
%% +空格 注释一行
% 注释内容
2.变量命名
MATLAB变量规则:
变量区分大小写
变量长度不超过63位
变量以字母开头,可由字母,数字和下划线组成,但不能使用标点
变量名简洁明了,通过变量名可直观卡出变量表示的物理意义
3.数据类型:
3.1数字
+、-、 *、/
3.2字符与字符串
’ ’
str=‘1 2 3’
leghth(str)的输出结果为5
3.3矩阵
A=[1 2 3;4 5 2;3 2 7;4 6 8 ]
效果图:
C=A(:)
A=[1 2 3;4 5 2;3 2 7] D=inv(A)
求逆矩阵要用方阵
E=zeros(10,5,3)
零矩阵10行5列3个维度
E(:,:,1)=rand(10,5)
随机的
E(:,:,1)=rand(10,5)
随机生成10行5列的
E(:,:,2)=randi(5,10,5)
最大值是5生成10行5列
第二层随机 其它层为0
E(:,:,3)=randn(10,5)
乱七八糟 有正有负
3.4元胞数组
A=cell(1,6)
一行六列的盒子
A{2}=eye(3)
eye生成3*3的对角线数值为1的矩阵
matlab是从1开始的,python从0开始索引
A{5}=magic(5)
生成5阶的幻方矩阵
B=A{5}
将A的值赋予B
3.5结构体
python当中的字典
books=struct('name',{{'MachineLearning','Date Mining'}},'price',[30 40])
books.name
引用book里面的name属性
book,name(1)
小括号取出sale 取出的是值
books,name{1}
小括号取出sale 取出的是值
books,name{1}
中括号取出字符串
4.矩阵构造和四则运算
**4.1矩阵的定义与构造
**
A=[1 2 3 5 8 5 4 6]
B=1:2:9
间隔为2 最小值1最大值9
C=repmat(B,3,2)
重复B 横重复3次竖着重复2次
D=ones(2 ,4)
2行4列全为1
4.2矩阵的四则运算
A=[12 3 4;5 6 7 8]
B=[1 1 2 2;2 2 1 1 ]
C=A+B
两个矩阵对应相加
D=A-B
两个矩阵对应相减
E=A*B'
B的转置:
A*B的转置:
F=A*.B
加点的是对应相乘
G=A/B
A*B的逆矩阵:
G*B*pinv(B)=A*pinv(B)
G=A*pinv(B)
G=A*pinv(B)
对应相除
H=A./B
5.矩阵的下标
A=magic(5)
B=A(2,3)
取2行3列
C=A(3,:)
取第3行的所有列
D=A(:,4)
取第4列的所有行
[m,n]=find(A>20)
找大于20的序号值/矩阵的索引值
6.程序结构
6.1for循环结构 for…end
格式:
例子:
6.2while循环 while…end
格式:
例子:
6.3分支结构
6.3.1 if… end
结构
oPU
例子
6.3.2 if…else…end
格式:
例子:
6.4 swith…case…end
格式:
7.二维平面绘图
代码:
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])
运行结果:
代码:
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]=plotyy(x,y1,x,y2,'plot');
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Slow Decay')
xlabel('Time(\musec)')
title('Multiple Decay Rates')
set(H1,'LineStyle','--')
set(H2,'LineStyle',':')
运行结果:
8.三维例题绘图
代码:
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on
axis square
结果:
补充:
grid on 绘制网格线
hold on 在同一个幕布绘制
hold off 不保留
axis square 正方形
9.图片导出
9.1方法1
生成图形编辑——复制图形选项——粘贴图形
9.2方法2
导出——另存为png格式
9.3方法3
复制选项
9.4方法4
图形属性 设置
9.5方法5
导出设置 注意:缩小图提高分辨率方法
9.6 补充:双峰函数
10.图形窗口的分割
x=linspace(0,2*pi,60);
subplot(2,2,1)
plot(x,sin(x)-1);
title('sin(x)-1');
axis([0,2*pi,-0,2])
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,cos(x));
title('cos(x)');
axis([0,2*pi,-35,35])