MATLAB入门级知识
要入坑MATLAB了。
老年人的记忆力伤不起,还是记下来方便以后查阅。
主要分为三部分:数据类型、可视化、程序设计。
-
数据类型
MATLAB中的数据类型主要包括字符型(char)、整型(int8、int16、int32、int64、uint8、...、uint64)、浮点(single、double)、元胞型(cell)和结构体型(structure)。
一些特殊变量包括:
ans | 默认的结果变量 |
pi | 圆周率 |
i或j | 虚数单位 |
realmin、realmax | 最小、大可用实数 |
inf或INF | 无穷大 |
nan或NaN | 不定值,如0/0 |
上述数据类型的创建就不说了,数组的创建如下:
我们可以使用“双冒号”生成等差向量(1:起始,1:步长,5:终止):
矩阵的创建:
magic(N) | N阶魔方矩阵(行、列、对角线相等的矩阵) |
eye(m,n) | m*n的单位矩阵 |
zeros(d1,d2,...) | d1*d2*...的全0数组 |
ones(d1,d2,...) | d1*d2*...的全1数组 |
rand(d1,d2,...) | d1*d2*...的(0,1)均匀分布随机数组 |
randn(d1,d2,...) | d1*d2*...的正态分布随机数组 |
矩阵元素的引用通过”()“来进行:
矩阵的合并:
矩阵常用函数:
det(x) | 计算方阵的行列式 |
rank(x) | 计算矩阵的秩 |
inv(x) | 计算矩阵的逆 |
[v,d]=eig(x) | 计算矩阵的特征值、特征向量 |
diag(x) | 产生矩阵的对角阵 |
[q,r]=qr(x) | 计算矩阵的QR分解 |
triu(x) | 产生矩阵的上三角矩阵,其余元素补0 |
tril(x) | 产生矩阵的下三角矩阵,其余元素补0 |
字符串:
如何在字符串中包含单引号?
元胞:
元胞用"{}"来创建,这个数据类型给我的感觉就是结构体,可以结构套结构:
逻辑运算包括:与&、或|、非~、异或xor
位运算包括:按位与bitand、按位或bitor、按位非bitcmp、按位异或bitxor
多项式:
多项式求解:
求多项式在给定的时对应的值:
多项式拟合:
-
可视化
二维绘图:
可以使用subplot(m,n,i)在同一个窗口中绘制多个图片,其中m和n代表窗口的划分,i代表第i个位置:
可以在同一个窗口中对图片堆叠,多次绘制:
绘图时可以指定颜色、点型、线型等:
黄色 |
y |
实点 | . | 实线 | - |
紫红 | m | 圆圈 | o | 点线 | : |
青色 | c | 叉型 | x | 点画线 | -. |
红色 | r | 十字 | + | 虚线 | -- |
绿色 | g | 星号 | * | ||
蓝色 | b | 方块 | s | ||
白色 | w | 钻石 | d | ||
黑色 | k | 五角 | p |
可以通过“axis”指令设置坐标轴范围:
可以使用“legend”指令给图片添加图例:
柱状图:
三维绘图:
绘制三维曲线:
绘制三维网线图
-
程序设计
分支控制:
if语句:
if xxx
yyy
elseif zzz
ttt
else
qqq
end
switch语句:
switch xxx
case 1
111
case 2
222
...
otherwise
others
end
循环控制:
for循环:
for n=1:5
...
end
while循环:
while(x<=10)
...
end
流程控制:
return 提前结束程序
keyboard 暂停程序,等待键盘输入
input 用于接收用户输入,如r=input('str','s'),'str'是显示在workspace中的提示信息,'s'代表输入的是字符串,不需执行。
pause 暂停程序,按任意键继续
函数:
每个.m文件中可以包含1个主函数和多个子函数,主函数在.m文件的第一行进行声明。下面是函数的格式:
function output=function_name(input)
...
可以在函数外使用“nargin”和“nargout”来获取函数的输入/输出参数个数:
nargin('function_name')
nargout('function_name')
在函数内部可以省略上述代码中括号内内容,如下:
function n=ext(x,y)
if(nargin==1)
plot(x,y)
else
plot(x,y+1)
end