matlab怎么输入二维数组,[转载]matlab中数组的输入

1 matlab中数组的输入

在matlab中写数组,直接输入元素的数组,应用中括号[],成行向量时,元素之间用空格或逗号隔开,成列向量时,分列处用分号隔开,也可以对相应行向量作转置,为在中括号外加单引号。可写入空向量,一维或多维向量。

例:

〉〉A=[] %回车

A =

[]

〉〉B=[1 2 3 4 5]

B=

1 2 3 4 5

〉〉C=[1;2;3;4;5]

C=

1

2

3

4

5

〉〉D=[1 2 3 4 5]’

D=

1

2

3

4

5

在此引入三个简化输入数组的命令Var=(start_var,step,stop_var),该命令用于输入一维等差数列,start_var是数列起始数,step是间隔数,stop_var是预定终止数,当不输入step时,step默认为1。

例:

〉〉E=(1,4)

E=

1 2 3 4

〉〉F=(1,2,4)

F=

1 3

Var=linspace(start_var,stop_var,n)该命令用于输入一维等差数列,start_var是数列起始数,stop_var是数列终止数,n是数组元素个数,当不输入n时,n默认为100。

例:

〉〉A=linspace(1,10,5)

A =

1.0000 3.2500 5.5000 7.7500 10.0000

Var=logspace(start_var,stop_var,n)该命令用于输入一维以十为底的指数函数形成的等比数列,10^start_var是数列起始数,10^stop_var是数列终止数,n是数列个数,当不输入n时,n默认为50。

〉〉B=logspace(1,3,3)

B =

10 100 1000

在写多维数组时,可直接输入数组元素运用分号,逗号,空格来组合,也可以用一维数组的命令来组合写成多维数组。

例:

>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9

>> B=[1:5;linspace(3,10,5);1 23 4 5

6]

B =

1.0000 2.0000 3.0000 4.0000 5.0000

3.0000 4.7500 6.5000 8.2500 10.0000

1.0000 23.0000 4.0000 5.0000 6.0000

>> C=[[1:3]' [linspace(2,3,3)]' [3 5

7]']

C =

1.0000 2.0000 3.0000

2.0000 2.5000 5.0000

3.0000 3.0000 7.0000

多项式

在matlab中多项式由行向量表示,其向量元素是多项式系数,由高阶到低阶。

例:

P(x)=x^3-4*x^2+5*x-2

在matlab中表示为:P=[1 -4 5

-2],当其中某一阶为零时,用0补齐。

解多项式的根,用roots命令。

例:解s(x)=x^3-6*x^2-72*x-27的根。

>> p=[1 -6 -72 -27];

>> r=roots(p)

r =

12.1229

-5.7345

-0.3884

在此,引入另一个命令poly,气相当于roots的逆命令。即通过根求解多项式的系数。

>> p=[1 -6 -72 -27];

>> r=roots(p)

r =

12.1229

-5.7345

-0.3884

>> ss=poly(r)

ss =

1.0000 -6.0000 -72.0000 -27.0000

当输入多维数组时,通过poly返回的是其的特征多项式。

例:

>> A=rand(4)

A =

0.9501 0.8913 0.8214 0.9218

0.2311 0.7621 0.4447 0.7382

0.6068 0.4565 0.6154 0.1763

0.4860 0.0185 0.7919 0.4057

>> B=poly(A)

B =

1.0000 -2.7334 1.2135 -0.6543 0.1155

>> C=roots(B)

C =

2.3230 0.0914 + 0.4586i

0.0914 - 0.4586i

0.2275

>>

e=eig(A) %eig式求解行列式特征值的命令

e =

2.3230 0.0914 + 0.4586i

0.0914 - 0.4586i

0.2275 对于多项式的运算,可用polyval求解定点的值。

例:

B =

1.0000 -2.7334 1.2135 -0.6543 0.1155

>> a=polyval(B ,2.5)

a =

2.4178

与polyval相似的另一函数是polyvalm,其可以接受二维数组形式的输入参数,对二维数组进行运算,但要求输入数组是行列相等的方阵。

例:

B =

1.0000 -2.7334 1.2135 -0.6543 0.1155

>> d=[1 2;3 4]

d =

1 2

3 4

>> c=polyvalm(B,d)

c =

105.8212 153.2246

229.8370 335.6581

对于多项式的乘法,可以运用*与.*进行运算以外,matlab还提供了专门的函数conv。而多项式的除法,作为乘法的逆运算,有命令deconv。其完整语法是[q,r]=deconv(v,u),q是商多项式,r是余式多项式,有v=conv(q,u)+r,当值有一个变量接受deconv的返回值时,返回q。

例:

>> v=[3 5 2 1 4];

>> u=[2 5 3];

>> [q,r]=deconv(v,u)

q =

1.5000 -1.2500 1.8750

r =

0 0 0 -4.6250 -1.6250

>> result=deconv(v,u)

result =

1.5000 -1.2500 1.8750

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值