Matlab的入门基本运用
首先基本介绍一下Matlab这个软件,这个基本是搞数学搞学术搞建模的都知道的一个软件啦,那我为啥会学这个软件呢,对啦,就是为了之前没有拟合好的曲线,重新拟合一下,而且搞学术,网上可以搞到的大部分代码其实也是matlab,本着不学习就是亏得原则,所以我写了这篇文章,文章会涉及到很多基础内容:
-
matlab的界面和版本
-
malab的变量命名
-
matlab的数据类型
-
matlab的结构体
-
矩阵的构造和四则运算
-
矩阵的定义与构造
-
矩阵的下标
-
-
逻辑与流程控制
-
二维平面绘图
-
三维立体绘图
-
论文的图形导出
matlab的界面和版本
本人使用的是R2018 b 这个b和a的区别其实就是上半年和下半年的区别,显然a表示的就是上半年,b表示的就是下半年
在界面上面我们可以很自然地看到【主页】、【绘图】、【APP】、【实时编辑器】、【插入】和【视图】
我们可以在【主页】里面的【预设】修改我们的字体大小或者语言格式
同时我们可以直接在路径栏里面修改我们的路径地址,进行跳转
在我们一开始打开的时候,我们应该只能看到一个命令行窗口:他是与我们直接进行交互的,比如你写一个
1 + 1
ans:
2
输入clc,可以直接清空命令行窗口,如果你需要一个脚本文件,只需要点击【主页】里面的【新建】,然后按crtl+s保存即可
malab的变量命名
- 变量名区分大小写
- 变量名长度不超过63位
- 变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点
- 变量名应该简单明了,通过变量名可以直观看出变量所表示的物理意义
matlab的数据类型
- 数字
matlab中加减乘除:
2 + 4
10 - 7
3 * 5
8 / 2
- 字符与字符串
s = '5-starrysky'
c = 'a'
- 矩阵 (这可能是与其他编程语言不相同的东西)
T=[1 1;2 2]
T =
1 1
2 2
% T的转置矩阵
T'
ans =
1 2
1 2
%
T(:)
ans =
1
2
1
2
% 求逆矩阵 但我这里行列式为0,所以没有逆矩阵
D=inv(T)
警告: 矩阵为奇异工作精度。
D =
Inf Inf
Inf Inf
% 矩阵乘法
A * T
% 生成0矩阵
S =zeros(4,5,2) # 2维的4行5列的矩阵
% 生成随机矩阵
T[:,:,1]=rand(4,5)
% 生成4行5列的均匀分布的伪随机数 randn表示生成标准正态分布的伪随机数(均值为0,方差为1) (0,1)闭区间
% randi生成均匀分布的伪随机数/矩阵/随机矩阵 (整数)
% 三个数,最前面那个就是,max。四位数,那么前两位:min max
- 元胞数组
% 得到一个元胞数组
T = cell(3,4)
3×4 cell 数组
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
% eye()函数 + 下标说明
T{1,2} = eye(3) #从这里可以发现,matlab其实是从下标索引1开始的 eye()返回3*3的单位矩阵
T =
3×4 cell 数组
{0×0 double} {3×3 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
% 产生一个3阶的幻阵,各行各列包括对角线,加起来相等
A = magic(3)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
结构体
% 有点像其他语言的映射
students = struct('name',{{'Zhang San','Li Si'}},'age',[17,18])
% 调用属性name
students.name
% 调用第一个name
students.name(1)
矩阵的构造和四则运算
矩阵的定义与构造
% 1.矩阵的定义与构造
A = [1 2 3 4 5 6]
B = 0:3:9 % 在0-9中间每隔3哥步长取一个数
C = repmat(B, 3, 1) % 数字横着的重复3次,列着的重复2次
C =
0 3 6 9
0 3 6 9
0 3 6 9
D = ones(2,4) % 生成2行4列的的“1”的矩阵
% 矩阵的运算
% 加法 减法 乘法 点乘 除法 点除
C = A + B
D = A - B
E = A * B'
F = A .*B % 点乘,就是对应位置上的相乘
G = A / B % 除,就是乘以相应的相应的逆矩阵
H = A ./ B
矩阵的下标
% 第2行第3个
B = A(2,3)
% 取出第三行
C = A(3,:)
% 找出A中大于20的序号值/矩阵位置
[m, n] = find(A > 20)
逻辑与流程控制
if 条件表达式
执行语句
else
执行语句
end
for 循环变量 = 初值:步长:终值 % 步长为1可以省略
执行语句1 % 可以嵌套for循环
...
执行语句n
end
while 条件表达式
执行语句1
执行语句2
...
执行语句n
end
switch 表达式(数值/字符串)
case (数值/字符串)
执行语句
end
二维平面绘图
% 准备数据
x = 0:0.01:2*pi
y = sin(x)
% 建立一个幕布
% plotyy 同一个x轴不同的y轴
figure
% 画图
H1 = plot(x,y)
% 修改线条set(H1,'LineStyle',--')
% 取标题
title('y = sin(x)')
xlabel('x')
ylabel('y')
% 缩小x轴的范围
xlim([0 2*pi])
三维立体绘图
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 % 起到限制范围的作用,效果会上产生一个正方形
图形的保存与导出
直接点击图片,【文件】选择【另存为】
或者选择【编辑】,复制图片
还可以在【编辑】当中,选择【复制选项】来修改一些参数