(3) [V,D]=eig(A,‘nobalance’):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。

例2-12 用求特征值的方法解方程。

3x5-7x4+5x2+2x-18=0

p=[3,-7,0,5,2,-18];

A=compan(p); %A的伴随矩阵

x1=eig(A) %求A的特征值

x2=roots(p) %直接求多项式p的零点

2.5 矩阵的超越函数

1.矩阵平方根sqrtm

sqrtm(A)计算矩阵A的平方根。

2.矩阵对数logm

logm(A)计算矩阵A的自然对数。此函数输入参数的条件与输出结果间的关系和函数sqrtm(A)完全一样

3.矩阵指数expm、expm1、expm2、expm3

expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都求矩阵指数eA。

4.普通矩阵函数funm

funm(A,‘fun’)用来计算直接作用于矩阵A的由‘fun’指定的超越函数值。当fun取sqrt时,funm(A,‘sqrt’)可以计算矩阵A的平方根,与sqrtm(A)的计算结果一样。

2.6 字符串

在MATLAB中,字符串是用单撇号括起来的字符序列。

MATLAB将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。也可以建立多行字符串矩阵。

字符串是以ASCII码形式存储的。abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。相反,char函数可以把ASCII码矩阵转换为字符串矩阵。

例2-13 建立一个字符串向量,然后对该向量做如下处理:

(1) 取第1~5个字符组成的子字符串。

(2) 将字符串倒过来重新排列。

(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。

(4) 统计字符串中小写字母的个数。

命令如下:

ch=‘ABc123d4e56Fg9’;

subch=ch(1:5) %取子字符串

revch=ch(end:-1:1) %将字符串倒排

k=find(ch>=‘a’&ch<=‘z’); %找小写字母的位置

ch(k)=ch(k)-(‘a’-‘A’); %将小写字母变成相应的大写字母

char(ch)

length(k) %统计小写字母的个数

与字符串有关的另一个重要函数是eval,其调用格式为:

eval(t)

其中t为字符串。它的作用是把字符串的内容作为对应的MATLAB语句来执行。

2.7 结构数据和单元数据

2.7.1 结构数据

1.结构矩阵的建立与引用

结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。建立一个结构矩阵可采用给结构成员赋值的办法。具体格式为:

结构矩阵名.成员名=表达式

其中表达式应理解为矩阵表达式。

2.结构成员的修改

可以根据需要增加或删除结构的成员。例如要给结构矩阵a增加一个成员x4,可给a中任意一个元素增加成员x4:

a(1).x4=‘410075’;

但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。

要删除结构的成员,则可以使用rmfield函数来完成。例如,删除成员x4:

a=rmfield(a,‘x4’);

3.关于结构的函数

除了一般的结构数据的操作外,MATLAB还提供了部分函数来进行结构矩阵的操作。

2.7.2 单元数据

1.单元矩阵的建立与引用

建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。

可以用带有大括号下标的形式引用单元矩阵元素。例如b{3,3}。单元矩阵的元素可以是结构或单元数据。

可以使用celldisp函数来显示整个单元矩阵,如celldisp(b)。还可以删除单元矩阵中的某个元素。2.关于单元的函数

MATLAB还提供了部分函数用于单元的操作。

2.8 稀疏矩阵

2.8.1 矩阵存储方式

MATLAB的矩阵有两种存储方式:完全存储方式和稀疏存储方式。

1.完全存储方式

完全存储方式是将矩阵的全部元素按列存储。以前讲到的矩阵的存储方式都是按这个方式存储的,此存储方式对稀疏矩阵也适用。

2.稀疏存储方式

稀疏存储方式仅存储矩阵所有的非零元素的值及其位置,即行号和列号。在MATLAB中,稀疏存储方式也是按列存储的。

注意,在讲稀疏矩阵时,有两个不同的概念,一是指矩阵的0元素较多,该矩阵是一个具有稀疏特征的矩阵,二是指采用稀疏方式存储的矩阵。

2.8.2 稀疏存储方式的产生

1.将完全存储方式转化为稀疏存储方式

函数A=sparse(S)将矩阵S转化为稀疏存储方式的矩阵A。当矩阵S是稀疏存储方式时,则函数调用相当于A=S。

sparse函数还有其他一些调用格式:

sparse(m,n):生成一个m×n的所有元素都是0的稀疏矩阵。

sparse(u,v,S)--:u,v,S是3个等长的向量。S是要建立的稀疏矩阵的非0元素,u(i)、v(i)分别是S(i)的行和列下标,该函数建立一个max(u)行、max(v)列并以S为稀疏元素的稀疏矩阵。

此外,还有一些和稀疏矩阵操作有关的函数。例如

[u,v,S]=find(A):返回矩阵A中非0元素的下标和元素。这里产生的u,v,S可作为sparse(u,v,S)的参数。

full(A):返回和稀疏存储矩阵A对应的完全存储方式矩阵。

2.产生稀疏存储矩阵

只把要建立的稀疏矩阵的非0元素及其所在行和列的位置表示出来后由MATLAB自己产生其稀疏存储,这需要使用spconvert函数。调用格式为:

B=spconvert(A)

其中A为一个m×3或m×4的矩阵,其每行表示一个非0元素,m是非0元素的个数,A每个元素的意义是:

(i,1) 第i个非0元素所在的行。

(i,2) 第i个非0元素所在的列。

(i,3) 第i个非0元素值的实部。

(i,4) 第i个非0元素值的虚部,若矩阵的全部元素都是实数,则无须第四列。

该函数将A所描述的一个稀疏矩阵转化为一个稀疏存储矩阵。

例2-15 根据表示稀疏矩阵的矩阵A,产生一个稀疏存储方式矩阵B。

命令如下:

A=[2,2,1;3,1,-1;4,3,3;5,3,8;6,6,12];

B=spconvert(A)

3.带状稀疏存储矩阵

用spdiags函数产生带状稀疏矩阵的稀疏存储,调用格式是:

A=spdiags(B,d,m,n)

其中,参数m,n为原带状矩阵的行数与列数。B为r×p阶矩阵,这里r=min(m,n),p为原带状矩阵所有非零对角线的条数,矩阵B的第i列即为原带状矩阵的第i条非零对角线。

4.单位矩阵的稀疏存储

单位矩阵只有对角线元素为1,其他元素都为0,是一种具有稀疏特征的矩阵。函数eye产生一个完全存储方式的单位矩阵。MATLAB还有一个产生稀疏存储方式的单位矩阵的函数,这就是speye。函数speye(m,n)返回一个m×n的稀疏存储单位矩阵。

2.8.3 稀疏矩阵应用举例

稀疏存储矩阵只是矩阵的存储方式不同,它的运算规则与普通矩阵是一样的。所以,在运算过程中,稀疏存储矩阵可以直接参与运算。当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。

matlab 求矩阵程序设计,MATLAB程序设计教程(2)—MATLAB矩阵及其运算(3)相关推荐

  1. matlab求两向量夹角_MATLAB教程-台大郭彦甫-第十节,含练习答案

    10-数值微积分 一.Polynomial differentiation and integration(多项式微分与积分) (一)Differentiation(微分) 1.The derivat ...

  2. matlab求偏微分方法解析解,偏微分数值解(2,MATLAB求解方法)学案.ppt

    这部分主要讨论如何用MATLAB实现对偏微分方程的数值仿真求解.MATLAB的偏微分方程工具箱(PDE Toolbox)的出现,为偏微分方程的求解以及定性研究提供了捷径.主要步骤为: 2.1 用偏微分 ...

  3. matlab求两向量夹角_MATLAB教程-台大郭彦甫-第十二节,含练习答案

    12-线性方程式与线性系统 一.Linear equation(线性方程式) (一)Linear equation 1.Suppose you are given linear equations: ...

  4. matlab 求向量的交集_从零开始的matlab学习笔记——(16)函数绘图

    matlab应用--求极限,求导,求积分,解方程,函数绘图....更多内容尽在个人专栏:matlab学习 这一节开始我们正式进入函数绘图,内容比较繁杂,我尽量把它整合的简洁一些. 单一图像: 首先我们 ...

  5. matlab求分段函数的值.,如何用MATLAB求分段函数的最小值和最大值?

    7.1.1 分段线性插值 所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理.实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要 ...

  6. matlab求二阶微分方程的通解,二阶常微分方程matlab的数值解和解析解分析总报告.ppt...

    方程求解程序清单 a=-1,b=2,c=-1; w=1; m=2; n=1; h = 0.02; t=0:h:30; s1=dsolve('a*D2y+b*Dy+c*y=sin(w*t)','y(0) ...

  7. matlab求方程在X附近的根,matlab 实验03 求代数方程的近似根(解)

    实验三 求代数方程的近似根(解) 求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称 ...

  8. 用Matlab求拐点和凹凸区间需要使用MATLAB

    1.启动MATLAB,输入如下代码,求解函数曲线的一阶导数.二阶导数.拐点和拐点处的切线方程. close all; clear all; clc;format compact % MATLAB之考研 ...

  9. matlab求系统稳定时k的范围,Matlab大作业

    一.通过举例说明运用MATLAB 判别控制系统稳定的所有方法 稳定是控制系统是否能进行工作的首要条件.一般来说,稳定性成为区分系统是否有用的标志.从实际应用的角度来看,可以认为只有稳定的系统才有用.而 ...

  10. matlab求kcf算法响应图_Mac下Matlab 2018运行KCF算法

    零.准备工作 0.1 资料及环境 0.2 下载标准跟踪序列 可直接用作者提供的download_videos.m,运行即可自动下载并保存到当前工程目录下,大小约1.1GB.可以删除videos={.. ...

最新文章

  1. HTML语义化:HTML5新标签——template
  2. 戴尔怎样把计算机放在桌面,戴尔台式机桌面图标不见了怎么办
  3. 邀请参加活动的邀请函_圣诞节点灯仪式活动邀请函制作
  4. 《疯狂Java讲义》2
  5. 论营销的重要性:以一个磁铁为例
  6. 【数据结构与算法】之深入解析“学生出勤记录II”的求解思路与算法示例
  7. C++中extern关键字使用 http://blog.csdn.net/sruru/article/details/7951019
  8. zookeeper linux 环境变量,zookeeper linux版安装
  9. LeetCode(557)——反转字符串中的单词 III(JavaScript)
  10. android权限列表
  11. win10+ubuntu双系统引导修复
  12. JAVA回调函数简单讲解 CallBack
  13. 时间管理——番茄工作法
  14. matlab机器学习之朴素贝叶斯实例分析
  15. VBA自动创建数据透视表
  16. 推特 我们目前不能注册此邮箱地址_安卓版推特App存在隐私漏洞,官方发信敦促用户更新...
  17. abp mysql .net core_基于abp vNext和.NET Core 开发博客
  18. JS实现图片轮播效果(自动和手动)
  19. JAVA中随机数的生成方法
  20. 关于使用讯搜(xunsearch)过程中遇到的坑

热门文章

  1. java旅游管理面试,旅游管理专业面试问题
  2. 安卓病毒频发,做好手机安全防护很有必要
  3. HRBUST1151-魔女
  4. [原创] Hzc:FZL中带点鼠绘的感觉(教程)
  5. 企查猫app破解以及数据解密
  6. 美国陪审团裁定福特向车祸遇难者家属赔偿17亿美元
  7. 我养的无名花草,四季开花
  8. 3dmax:3dmax的软件右边栏常用修改器(面挤出、网格/平滑、涡轮平滑、球形化、曲面修改器、星、融化、删除网格修改器、体积选择、优化、UVW贴图修改器、弯曲、置换、噪波、锥化)之详细攻略
  9. matlab之simulink仿真入门
  10. JRebel LS client not configured解决方案