第3章 MATLAB基础知识
MATLAB中的常量
ans # 默认变量
pi # 圆周率
eps # 浮点运算的相对精度
inf # 无穷大
NaN # 不定值
i(j) # 复数中的虚数单位
realmin # 最小正浮点数
realmax # 最大正浮点数
关系运算符
运算符 |
定义 |
== |
等于 |
~= |
不等于 |
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
逻辑运算符
运算符 |
定义 |
& 或 and |
与 |
| 或 or |
或 |
~ |
非 |
xor |
异或 |
any |
有非零为真 |
all |
皆非零为真 |
复数运算
abs # 模
angle # 相角
complex # 用实部和虚部构造复数
conj # 共轭
imag # 虚部
real # 实部
unwrap # 调整矩阵元素的相位
isreal # 是否为实数矩阵
cplxpair # 把复数矩阵排列成复共轭对
三角函数
sin
cos
tan
cot
sec
csc
第4章 向量与多项式
向量生成
#[ 直接生成
x = [1 2 3 4]
x = [1; 2; 3; 4]
# 冒号]()
x = 0: 2: 10 # 0 2 4 6 8 10
# linspace(first_value, last_value, number)
x = linspace(0, 10, 6)
x = logspace(0, 5, 6) # [ 1 10 100 1000 10000 100000]
向量引用
x = [1 2 3 4 5]
# x(n)
x(3) # 3
# x(n1:n2)
x(1:3) # [ 1 2 3]
点积运算
a .* b
dot(a, b)
dot(a, b, dim) # a, b在dim维的点积
叉积运算
cross(a, b)
cross(a, b, dim)
多项式生成
# 直接输入
\'a*x^n + b*x^(n-1)\'
# 向量构成
p = [3 -2 4 6 8]
poly2sym(p) # 3*x^4 - 2*x^3 + 4*x^2 + 6*x + 8
# 由根生成多项式
root = [-5 3+2i 3-2i]
p = poly(root)
poly2sym(p)
数值多项式运算
多项式的四则运算实际上是多项式对应系数的四则运算
p1 = 1:5
p2 = 2:6
p1+p2
# 乘法(卷积)
conv(p1, p2)
# 除法(解卷)
[k, r] = deconv(p1, p2) # k为商,r为余式
# 导数
polyder(p) # 输入系数向量,返回导数系数向量
特殊变量
单元型变量
# 创建
# 赋值语句直接定义
A = [1 2; 3 4];
B = 3 + 2*i;
C = \'efg\';
D = 2;
E = {A B C D}
# 申请空间后逐个赋值
E = cell(1, 3);
E{1, 1} = [1: 4];
E{1, 2} = B;
E{1, 3} = 2;
# 引用
E{1} # ans = 1 2 3 4
E(1) # ans = 1×1 cell 数组 {1×4 double} (显示元素的压缩形式)
有关函数
函数名 |
说明 |
cell |
生成单元型变量 |
cellfun |
对单元型变量中的元素作用的函数 |
celldisp |
显示单元型变量的内容 |
cellplot |
用图形显示单元型变量的内容 |
num2cell |
将数值转换成单元型变量 |
deal |
输入输出处理 |
cell2struct |
将单元型变量转换成结构性变量 |
struct2cell |
将结构型变量转换成单元型变量 |
iscell |
判断是否为单元型变量 |
reshape |
改变单元数组的结构 |
结构型变量
根据属性名(field)组织起来的不同数据类型的集合,任何一个属性可以包含不同的数据类型
mn = struct(\'color\',{\'red\', \'black\'}, \'number\', {1, 2})
mn =
包含以下字段的 1×2 struct 数组:
color
number
mn(1)
ans =
包含以下字段的 struct:
color: \'red\'
number: 1
mn(2)
ans =
包含以下字段的 struct:
color: \'black\'
number: 2
mn(2).color
ans =
\'black\'
有关函数
函数名 |
说明 |
struct |
创建结构型变量 |
fieldnames |
得到结构型变量的属性名 |
getfield |
得到结构型变量的属性值 |
setfield |
设定结构型变量的属性值 |
rmfield |
删除结构型变量的属性 |
isfield |
判断是否为结构型变量的属性 |
isstruct |
判断是否为结构型变量 |
第5章 矩阵运算
创建矩阵
直接创建
a = [1 1 1; 1 1 1; 1 1 1]
M文件创建
gmatrix = [1 2 3 4 5;
6 7 8 9 10;
11 12 13 14 15]
利用文本创建
load goods.txt
创建特殊矩阵
# 单位矩阵
eye(n) # 创建nXn单位矩阵
eye(m, n) # 创建mXn单位矩阵
eye(size(A)) # 创建和A维数相同的单位阵
# 全1阵
ones(n)
ones(m, n)
ones(size(A))
# 全0阵
zeros(m, n)
zeros(size(A))
# 均匀随机矩阵
rand(n)
rand(m, n)
rand(size(A))
# 创建系数向量是P的多项式的伴随矩阵
compan(P)
# 创建以向量v中的元素为对角的对角阵
diag(v)
# 创建nXn的Hilbert矩阵
hilb(n)
invhilb(n) # 逆Hilbert矩阵
# 生成n阶魔方矩阵
magic(n)
# 将矩阵A转化为稀疏矩阵形式
sparse(A)
矩阵运算
修改矩阵元素
# 在A矩阵后扩充元素B、C
D = [A; B C]
# 删除第m行
A(m, :) = []
# 删除第n列
A(:, n) = []
# 对(m, n)元素赋值
A(m, n) = a
# 对m行赋值
A(m, :) = [a b c]
# 对n列赋值
A(:, n) = [a b c]
变维
# 调用函数reshape()
reshape(X, m, n)
# 将A的元素赋值到C,以C维度排列
C(:) = A(:)
变向
命令名 |
说明 |
rot(90) |
逆时针旋转90度 |
rot(90, k) |
逆时针旋转90 * k |
fliplr() |
左右翻转 |
flipud() |
上下翻转 |
flipdim(X, dim) |
dim=1对行翻转,dim=2对列翻转 |
矩阵抽取
命令名 |
说明 |
diag(X, k) |
抽取第k条对角线上的元素向量,0为主对角线,正往上,负往下 |
diag(X) |
主对角线 |
diag(v, k) |
将v代替第k条对角线 |
diag(v) |
v代替主对角线 |
tril(X) |
主下三角 |
tril(X, k) |
第k条对角线下三角(包括对角线) |
triu(X) |
主上三角 |
triu(X, k) |
第k条对角线上三角(包括对角线) |
数学运算
A + B
A - C
# 数乘
5A
# 乘
A * B
# 点乘
A .* B
# 左除
D\B = inv(D) * B
D .\ B
# 右除
B/D = B * inv(D)
B ./ D
矩阵运算
函数名 |
说明 |
函数名 |
说明 |
cond |
条件数值 |
diag |
对角变换 |
condest |
1-范数矩阵条件数值 |
expm |
指数运算 |
det |
行列式值 |
logm |
对数运算 |
eig |
特征值 |
sqrtm |
开方运算 |
inv |
求逆 |
cdf2rdf |
复数对角矩阵转换成实数块对角矩阵 |
norm |
求范数 |
rref |
转换为逐行递减的阶梯矩阵 |
normest |
2-范数值 |
rsf2csf |
实数块对角矩阵转换成复数对角矩阵 |
rank |
求秩 |
rot90 |
逆时针旋转90 |
orth |
正交化运算 |
fliplr |
左右翻转 |
rcond |
逆条件数值 |
flipud |
上下翻转 |
trace |
求迹 |
reshape |
改变维数 |
triu |
上三角变换 |
funm |
一般的矩阵函数 |
tril |
下三角变换 |
|
|
矩阵分解
# cholesky分解 A = RT*R
R = chol(A)
[R, p] = chol(A) # 针对正定阵,若A为正定阵p=0,否则P为正整数,R为有序上三角阵
# LU分解 将矩阵分解为一个下三角矩阵L和一个上三角矩阵U的乘积,A=LU
[L, U] = lu(A)
[L, U, P] = lu(A) # P为置换矩阵,LU = PA
书P78
第6章 二维绘图
plot(x, y)
plot(x, y, s)
subplot(m, n, p) # 将窗口分割成mXn个视图区域,并指定第p个视图为当前视图
hold on # 使当前轴及图形保持不变,hold off取消
plot参数
线型控制
字符 |
数据点 |
字符 |
数据点 |
+ |
加号 |
> |
向右三角形 |
o |
小圆圈 |
< |
向左三角形 |
* |
星号 |
s |
正方形 |
. |
实点 |
h |
正六角星 |
x |
交叉号 |
p |
正五角星 |
d |
棱形 |
v |
向下三角形 |
^ |
向上三角形 |
|
|
fplot
针对一元函数,自适应,光滑准确
subplot(2, 1, 2), fplot(@(x)sin(1./x), [0.01, 0.02])
ezplot
将符号函数图形化
syms x
f1 = exp(2*x) * sin(2*x);
ezplot(f1, [-4*pi, 4*pi])
请发表评论