我的Matlab入门笔记
By Paneer
关于注释
1 | %% 这是一行注释(双百分号) |
关于变量命名
% 变量名不能超过63个字符
1 | datou = 'keai' % ' '之间为字符串,定义datou为keai |
% 定义矩阵A 空格或逗号隔开,分号换行
1 | A=[1 2 3;3 3 3;4 1 1] |
% 对矩阵A转置
1 | B=A' |
% 将矩阵A按列拉长
1 | C=A(:) |
% 对矩阵A求逆
1 | D=inv(A) |
% 矩阵之间的乘法运算
1 | A*D |
随机数部分
% 生成伪随机数,分布在(0-1)之间
1 | rand |
% 生成m行n列的均匀分布的伪随机数
1 | rand(m.n) |
% 生成指定精度的均匀分布的伪随机数,参数还可为’single’
1 | rand(m,n,'double') |
% 利用指定的 RandStream(随机种子)生成伪随机数
1 | rand(RandStream,m,n) |
% 生成标准正态分布的伪随机数(均值为0,方差为1)
1 | randn % 主要语法同 rand |
% 生成均匀分布的伪随机数
1 | randi(n) |
% 在开区间(1,iMax)生成均匀分布的伪随机数
1 | r=randi(iMax) |
% 在开区间(1,iMax)生成m*n型随机矩阵
1 | r=randi(iMax,m,n) |
% 在开区间(iMin,iMax)生成m*n型随机矩阵
1 | r=randi([iMin,iMax],m,n) |
元胞数组
%% 元胞数组:Matlab中特有的一种数据类型,数组的一种。
% 其内部元素可以是属于不同的数据类型。
1 | A = cell(1,6) |
在Matlab中输出为
A =
1×6 cell 数组
列 1 至 3
{0×0 double} {0×0 double} {0×0 double}
列 4 至 6
{0×0 double} {0×0 double} {0×0 double}
% matlab索引从1开始,此处为第二个元胞为3x3型
1 | A{2} = eye(3) |
% 输出为
A =
1×6 cell 数组
列 1 至 3
{0×0 double} {3×3 double} {0×0 double}
列 4 至 6
{0×0 double} {0×0 double} {0×0 double}
%% 在Matlab中生成n阶幻方:
1 | magic(n) |
% 幻方:三阶幻方为例,指1-9九个数字组成3*3的矩阵使得该矩阵任意横竖斜方向三个数的和总是相同。
1 | A{5} = magic(5) |
% 输出为
A =
1×6 cell 数组
列 1 至 3
{0×0 double} {3×3 double} {0×0 double}
列 4 至 6
{0×0 double} {5×5 double} {0×0 double}
结构体
1 | books = struct('name',{{'Machine Learning','Date Mining'}},'price',[30 40]) |
% 可以理解为python中的字典
1 | books.name %调用books中name这一属性 |
Matlab矩阵操作
1.矩阵的定义与构造
% 构造一个一行六列的矩阵
A = [1 2 3 4 5 6]
% 构造1-9区间内步长为3的矩阵即:B = 1 4 7
B = 1:3:9
%将B矩阵重复,化为3行1列的分块矩阵C,每一块都是矩阵B
C = repmat(B,3,1)
% 生成一个2行4列的每个值都是1的矩阵
D = ones(2,4)
2.矩阵的四则运算
1 | A = [1 2 3 4; 5 6 7 8] |
3.矩阵的下标
1 | A = magic(5) % 生成5阶幻方 |
程序结构
循环结构
for循环:步长默认为1,可省略。其余符合数学逻辑即可
% for 循环变量 = 初值:步长:终值
% 执行语句 1
% ……
% 执行语句 n
% end
示例:
1 | sum = 0; |
% for循环求i!的累加,i=1:5
1 | sum = 0; |
while循环 当表达式为真时进入循环,为假时执行end之后的语句
% while 条件表达式
% 执行语句1
% ...
% 执行语句n
% end
% 求1+2+3+4+5+…+10的和
1 | s = 0; |
分支结构
1. if…end 结构
% 该结构只有一个判断语句,当条件表达式为真时,执行该语句;反之执行end后的语句
% if 条件表达式
% ...
% 语句体
% ...
% end
% 满足条件时显示”成立”
1 | a = 100; |
2.if…else…end结构
% 若表达式为真,则执行语句体1,否则执行语句体2
% if 表达式
% 语句体1
% else
% 语句体2
% end
3.switch…case…end结构
% switch后表达式的值或字符串与case后的值或字符串进行比较,与哪一个case相同则执行哪一个case下的语句体。
% 若所有的case的值都不相同,则执行otherwise后的语句体。
% switch 表达式(数值or字符串)
% case 数值或字符串1
% 语句体1;
% case 数值或字符串2
% 语句体2;
% ...
% otherwise
% 语句体n;
% end
二维平面绘图
1 | x = 0:0.01:2*pi; |
% 颜色选项参数
红 | 绿 | 蓝 | 黄 | 粉 | 青 | 白 | 黑 |
---|---|---|---|---|---|---|---|
r | g | b | y | m | c | w | k |
% 线性选项参数
实线 | 虚线 | 冒号线 | 点画线 |
---|---|---|---|
- | – | : | -。 |
——————————— | ———– | ··· ··· ··· | -·-·-·-·-·- |
% 数据标记点选项参数
点 | 十字号 | 圆圈 | 星号 | 叉号 | 正方形 | 菱形 | 上三角 | 下三角 | 左三角 |
---|---|---|---|---|---|---|---|---|---|
· | + | o | * | x | s | d | ^ | v | < |
% 例子
1 | x = 0:0.01:20; |
三维平面绘图
1 | t = 0:pi/50:10*pi |
%% 图形窗口分割
1 | x = linspace(0,2*pi,60) % 定义一个x |
%% 完结撒花
1 | % peaks & mesh |
参考视频地址:
https://www.bilibili.com/video/BV13D4y1Q7RS?p=15&share_source=copy_web