function [x,n] = impseq(n0,n1,n2)
impulse sequence function冲击序列函数。
产生 x(n) = delta(n-n0), n1 <= n <= n2。
delta就是冲击函数。
简单的说,除了n0那里是冲击以外,n1到n2全是零。
矩阵运算函数:
(1) diag()
>> a
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> diag(a)
ans =
17
5
13
21
9
>> diag(diag(a))
ans =
17 0 0 0 0
0 5 0 0 0
0 0 13 0 0
0 0 0 21 0
0 0 0 0 9
(2) linspace()
>> b(:,2)=linspace(1,5,5)
b =
1 1
5 2
1 3
1 4
1 5
(3) ones()
>> a=ones(5,7)
a =
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
(3) magic()
>> a=magic(5)
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
(4) repmat()
>> b(:,2)=repmat(4.1,1,5)
b =
1.0000 4.1000
5.0000 4.1000
1.0000 4.1000
1.0000 4.1000
1.0000 4.1000
(5) 矩阵翻转
fliplr(a) 左右对称
flipud(a) 上下对称
rot90(a) 逆时针90°旋转
>> a
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> fliplr(a)
ans =
15 8 1 24 17
16 14 7 5 23
22 20 13 6 4
3 21 19 12 10
9 2 25 18 11
>> flipud(a)
ans =
11 18 25 2 9
10 12 19 21 3
4 6 13 20 22
23 5 7 14 16
17 24 1 8 15
>> rot90(a)
ans =
15 16 22 3 9
8 14 20 21 2
1 7 13 19 25
24 5 6 12 18
17 23 4 10 11
(5) . 运算
>> a
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> a./2
ans =
8.5000 12.0000 0.5000 4.0000 7.5000
11.5000 2.5000 3.5000 7.0000 8.0000
2.0000 3.0000 6.5000 10.0000 11.0000
5.0000 6.0000 9.5000 10.5000 1.5000
5.5000 9.0000 12.5000 1.0000 4.5000
(6) 矩阵的左除与右除
X=A\B
等价于 AX=B
X=A/B
等价于 XA=B
(7) 矩阵查询函数
find(a>=5)
all(a>=5)
any(a>=5)
默认all any 均以列来反应结果
对于all 若全达到要求则为1
对于any 若一个达到要求则为1
>> a
a =
5 2 3
5 5 6
5 8 9
>> [i,j]=find(a>=5)
i =
1
2
3
2
3
2
3
j =
1
1
1
2
2
3
3
>> all(a>=5)
ans =
1 0 0
>> any(a>=5)
ans =
1 1 1
解析结果的化简
化简函数simple()
>> syms s;p = (s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64) %syms s 定义符号变量s
p =
(s + 3)^2*(s^2 + 3*s + 2)*(s^3 + 12*s^2 + 48*s + 64)
>> simple(p)
…………%省略化简过程
ans =
(s + 3)^2*(s + 4)^3*(s^2 + 3*s + 2)
返回化简过程:[a,m] a为表达式,m为化简方式
>> [a,m]=simple(p)
a =
(s + 3)^2*(s + 4)^3*(s^2 + 3*s + 2)
m =
simplify
用多项式展开法化简P
>> expand(p)
ans =
s^7 + 21*s^6 + 185*s^5 + 883*s^4 + 2454*s^3 + 3944*s^2 + 3360*s + 1152
用subs函数更换原变量生成新函数
>> syms a
>> f=subs(p,s,a)
f =
(a + 3)^2*(a^2 + 3*a + 2)*(a^3 + 12*a^2 + 48*a + 64)
使用latex函数将表达式转化成LaTeX格式:
>> latex(f)
ans =
{\left(a + 3\right)}^2\, \left(a^2 + 3\, a + 2\right)\, \left(a^3 + 12\, a^2 + 48\, a + 64\right)
{LaTeX为科技排版工具,百度了一下学习起来貌似有点复杂,以后有时间再看看瞧瞧}