Matlab基础入门

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值