Matlab基础入门
1、快捷键
新建:Ctrl + N
格式化代码: Ctrl + I
运行:F5
运行当前节:Ctrl + Enter
中断运行:Ctrl + C
注释: Ctrl + R
取消注释:Ctrl + T
2、Matlab帮助文档
链接:https://ww2.mathworks.cn/help/?s_tid=user_nav_help
或者也可以直接在命令行窗口输入 /help xxx 搜索 xxx 的帮助文档
3、注释
% 单行注释
%% 分割线,同时将代码分为不同的节
4、变量
- 整数
- 浮点数
- 字符 用单引号’ '表示
- 字符串 双引号 " "表示
- 矩阵 中括号[ ]表示
- 特殊字符
- inf/-inf:无穷大
- pi:π
/iskeyword 查看关键字列表
5、矩阵
1、直接输入
[1 2 3
4 5 6]
[1,2,3;4,5,6]
[A;B]
同行元素逗号或空格分隔,不同行元素用分号或换行分隔
2、函数
| 函数 | 功能 | 参数 |
|---|---|---|
| zeros | 全为0的矩阵 | m,n |
| ones | 全为1的矩阵 | m,n |
| eye | 单位矩阵 | m,n |
| rand | 均匀分布的随机数 | m,n |
| randi | 均匀分布的随机整数 | [imin,imax],m,n |
| randn | 标准正态分布的随机数 | m,n |
3、矩阵元素的修改
A(2,3) 修改一个元素
A([2,3],[3,4]) = 10 修改第2行第3行的第3列和第四列元素
A(2,:)=10 修改第二行所有元素
A(4)=10 修改线性索引(先列后行)的第4个元素,如果索引超过了原矩阵元素个数,会自动扩充矩阵规模,其余位置赋值0
A( : ) 将矩阵的所有元素按线性索引顺序拼接成一个单列向量
4、矩阵的拼接
- 横向拼接:行数相同[A,B]
- 纵向拼接:列数相同[A;B]
- cat函数:第一个参数 1:纵向,2:横向;后两个参数矩阵 A,B
cat(1,A,B) 纵向拼接
cat(2,A,B) 横向拼接
5、矩阵的重构重排
- reshape函数
reshape(A,m,n) 或 reshape(A,[m,n])
将矩阵A重构成m行n列的矩阵,使用时不能改变元素的数量
reshape(A,m,[ ]) 自动计算元素数量,重构成m行x列的矩阵
- sort函数
sort(A,1) 或 sort(A,2) 1、沿着行方向(从上至下)排序,2、沿着列方向(从左至右)排序
默认升序排序,添加第三个参数 ’descend‘ 降序排序
- sortrows函数
sortrows(A,x) 根据第x列对A矩阵进行排序,不改变同行元素的顺序
默认升序排序,添加第三个参数 ’descend‘ 降序排序
6、矩阵的运算函数
- sum
sum(A,1) 计算每一行的和
sum(A,2) 计算每一列的和
sum(sum(A)) 或 sum(A( : )) 或 sum(A,“all”) 计算矩阵的总和
- prod
prod(A,1)
prod(A,2)
prod(prod(A))
prod(A,“all”)
更多函数查阅帮助文档
7、矩阵的运算
A ± B : 矩阵加减
A * B : 矩阵相乘
A . * B : 矩阵点乘
A^2 :矩阵乘方
A.^2 :矩阵点乘方
A ./ B :矩阵点除
A’ :矩阵转置
A == B :A等于B
A ~= B :A不等于B
8、逻辑运算
与:
&
and(A,B)
或:
|
or(A,B)
非
~
not(A)
异或
xor(A,B)
all
判断数组是否全为非零值
all(A,1): 沿着行方向判断每一列,返回一个行向量,也可以写成all(A)
all(A, 2):沿着列方向判断每一行,返回一个列向量
any
判断数组是否至少存在一个非零值
any(A,1): 沿着行方向判断每一列,返回一个行向量,也可以写成any(A)
any(A, 2):沿着列方向判断每一行,返回一个列向量
find
find(A) :返回数组中非零元素的索引
find(A,n) :返回数组中前n个非零元素的索引
find(A,n,‘last’):从后往前索引前n个非零元素的索引
[row,col] = find(A):将数组中非零元素的行列索引分别存至row和col中
[row,col,v] = find(A):将数组中非零元素的行列索引分别存至row和col中,将非零元素的值存至v
6、结构
- 条件结构
if-elseif-else-end
if 表达式
…
elseif 表达式
…
else
…
end
switch-case-otherwise-end
switch 变量
case 值:
…
otherwise:
…
end
- 循环结构
for-end
for 循环变量 = 向量或矩阵
…
end
如:
for i = 1:5
n=n+1
end
while-end
while 表达式
…
end
7、自定义函数
1、m文件定义函数
function [max,min] = max_min_values(X)
max = maxfunc(X);
min = minfunc(X);
function r = maxfunc(X)
…
end
function r = minfunc(X)
…
end
end
2、匿名函数
f = @(x,y)x + y;
f(2,3)
8、特殊函数
- fzero
x = fzero(func,x0) 尝试求出func = 0的根,其中x0是计算的起始点(猜测值)
- arrayfunc
x = arrayfunc(func,X) 将X中的元素一一应用在func函数中
- abs
abs(-1.5) --> 1.5 绝对值
abs(3+4i) --> 5 复数的模长
- mod
mod(11,3) --> 2 求余数
- sqrt
**sqrt(4) --> 2 求平方根
- exp
exp(1) --> 2.7183 求自然常数e
- log
log(2) 求以自然对数e为底的对数
log2(n) 求以2为底的对数
log10(n) 求以10为底的对数
- round
round(X,N) 将X在第N位数四舍五入
-
sin,cos,tan,cot等
帮助文档搜索三角学 -
isempty
isempty(X) 判断X是否为空数组
- meshgrid
x = 0:2
y = 0:1
[xx,yy] = meshgrid(x,y)
得到结果
xx =
0 1 2
0 1 2
yy =
0 0
1 1
2 2
将(x,y)坐标系转换为为(x,-y)二维网格表示
生成平面网格数据
rng
rng(seed) 设置随机数种子
rng(‘shuffle’) 根据当前时间设置随机数种子
- ismember
ismember(x,A) 判断x是否在A中存在
- linspace
y = linspace(x1,x2) :返回x1-x2之间等间距的100个点的行向量
y = linspace(x1,x2,n) :返回x1-x2之间等间距的n个点的行向量
- 特殊函数
帮助文档搜索特殊函数,如贝塞尔函数、beta函数、误差函数等
9、二维图形绘制
基本绘图函数
- plot
plot(X,Y) :以x,y为轴创建一个二维线图
plot(X):x=y的对角线
plot(X1,Y1,X2,Y2…) :在二维线图上画多条曲线
- fplot
fplot(func):在默认区间[-5,5]绘制func函数的曲线
fplot(func,[min,max]): 在区间[min,max]绘制func函数的曲线
fplot(func1,func2,[min,max]):在区间[min,max]绘制多条曲线
fplot(…,‘-r’):在后面加属性‘-r’表示红色线条
plot函数不知道具体的func函数,通过描点绘图
fplot函数知道具体的func函数,绘制的图更平滑更准确
其他坐标系的绘图函数
- semilogx
semilogx(X,Y):在x轴上是以10为底的对数刻度,在y轴上线性刻度
- polarplot
polarplot(theta,rho):theta表示弧度角,rho表示半径,绘制极坐标图
统计图
- bar
bar(x,y):绘制条形图
x=[1,2,3];
y=[10,20;20,30;30,40];
bar(x,y);
- histogram
histogram(x,nbins): 将x的值自动分在nbins个bin中,绘制直方图
h = histogram(x,nbins)’
counts = h.Values;
获取bin的计数
- pie
pie(x): 将x中每一个元素作为一个扇区,绘制饼图
- scatter
scatter(x,y):在x,y指定的位置创建圆形标记,绘制散点图
scatter(x,y,sz,c):sz圆的大小,c圆的颜色
scatter(…,‘filled’):转为实心圆
- quiver
quiver(x,y,u,v):从x到u,从y到v创建箭头,绘制矢量图
图形属性设置
- 线型
‘-’:实线
‘–’:虚线
‘:’:点线
‘-.’:点虚线
- 标记
o:圆
+:加号
.:点
…
- 颜色
r:红色
g:绿色
b:蓝色
…
- 图形标注
title:标题
xlabel:x轴说明
ylabel:y轴说明
text(x,y,func,‘文字说明’):在func函数曲线的对应点(x,y)添加文字说明
legend(‘func1文字说明’,‘func2文字说明’,‘func3文字说明’):在右上角创建一个三条曲线的图例
- 坐标控制
axis([xmin,xmax,ymin,ymax,zmin,zmax]):控制坐标轴的大小
axis equal:采用等长刻度
axis square:正方形坐标系
axis auto:默认设置
axis off:取消坐标系
axis on:显示坐标系
grid on:显示网格线
gird off:取消网格线,默认
gird:切换状态
hold on:保持原有图形
hold offf:刷新图形窗口
hold on:切换状态
10、三维曲线绘制
- plot3
plot3(x,y,z):绘制x,y,z三轴的三维曲线
plot3(x1,y1,z1,x2,y2,z2):绘制多条三维曲线
- fplot
fplot3(funx,funy,funz,[min,max]):在[min,max]范围根据funx,funy,funz函数绘制三维曲线,默认范围[-5,5]
- mesh
mesh(x,y,z):绘制三维曲面图
- surf
surf(x,y,z):绘制三维曲面图
mesh和surf用法差不多,画出来的图不太一样
11、句柄/窗口控制
句柄变量是对象
h = text(5,25,‘说明’);
h.FontSize = 24;
- 获取某对象的属性:
get(h)
- 设置某对象的属性:
set(h,‘Color’,‘red’)
- 图形窗口分隔
subplot(m,n,p):将图形窗口分为m*n个绘图区,p指定当前活动区
subplot(2,2,4)
12、文件导入
支持的格式:
.txt,.dat, .csv(带文件分隔符的文本文件)
.xls, .xlsb, .xlsm, .xlsx, .xltm, .xltx, .ods(电子图表文件)
…
本文内容是看完b站up主数模加油站的视频后的学习笔记
视频链接:https://www.bilibili.com/video/BV1Sj421S7wh?spm_id_from=333.788.player.switch&vd_source=b6da47f369c857c4d1004e7f61c5fa6e&p=10
三连感谢up
9万+

被折叠的 条评论
为什么被折叠?



