问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

matlab如何从表达式中读取数字很变量???

发布网友 发布时间:2022-05-02 13:08

我来回答

1个回答

热心网友 时间:2022-06-20 04:51

MATLAB强大的数值计算功能使其在诸多数学计算软件中傲视群雄,是MATLAB软件的基础。本节将简要介绍MATLAB的数据类型、矩阵的建立及运算。

4.1 MATLAB 数据类型

MATLAB的数据类型主要包括:数字、字符串、矩阵、单元型数据及结构型数据等,限于篇幅我们将重点介绍其中几个常用类型。

4.1.1 变量与常量

变量是任何程序设计语言的基本要素之一,MATLAB语言当然也不例外。与常规的程序设计语言不同的MATLAB并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MATLAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型。在赋值过程中如果赋值变量已存在时,MATLAB语言将使用新值代替旧值,并以新值类型代替旧值类型。

在MATLAB语言中变量的命名应遵循如下规则:

(1)变量名区分大小写。

(2)变量名长度不超31位,第31个字符之后的字符将被MATLAB语言所忽略。

(3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。

与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题。在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说全局变量均用大写的英文字符表示。

MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量。表4-1给出了MATLAB语言中经常使用的一些常量值。

表4-1

常 量
表 示 数 值

pi
圆周率

eps
浮点运算的相对精度

inf
正无穷大

NaN
表示不定值

realmax
最大的浮点数

i, j
虚数单位

在MATLAB语言中,定义变量时应避免与常量名重复,以防改变这些常量的值,如果已改变了某外常量的值,可以通过“clear+常量名”命令恢复该常量的初始设定值(当然,也可通过重新启动MATLAB系统来恢复这些常量值)。

4.1.2 数字变量的运算及显示格式

MALAB是以矩阵为基本运算单元的,而构成数值矩阵的基本单元是数字。为了更好地学习和掌握矩阵的运算,首先对数字的基本知识作简单的介绍。

对于简单的数字运算,可以直接在命令窗口中以平常惯用的形式输入,如计算2和3的乘积再加1时,可以直接输入:

>> 1+2*3

ans=

7

这里“ans”是指当前的计算结果,若计算时用户没有对表达式设定变量,系统就自动赋当前结果给“ans”变量。用户也可以输入:

>> a=1+2*3

a=

7

此时系统就把计算结果赋给指定的变量a了。

MATLAB语言中数值有多种显示形式,在缺省情况下,若数据为整数,则就以整数表示;若数据为实数,则以保留小数点后4位的精度近似表示。MATLAB语言提供了10种数据显示格式,常用的有下述几种格式:

short 小数点后4位(系统默认值)

long 小数点后14位

short e 5位指数形式

long e 15位指数形式

MATLAB语言还提供了复数的表达和运算功能。在MATLAB语言中,复数的基本单位表示为i或j。在表达简单数数值时虚部的数值与i、j之间可以不使用乘号,但是如果是表达式,则必须使用乘号以识别虚部符号。

4.1.3 字符串

字符和字符串运算是各种高级语言必不可少的部分,MATLAB中的字符串是其进行符号运算表达式的基本构成单元。

在MATLAB中,字符串和字符数组基本上是等价的;所有的字符串都用单引号进行输入或赋值(当然也可以用函数char来生成)。字符串的每个字符(包括空格)都是字符数组的一个元素。例如:

>>s=’matrix laboratory’;

s=

matrix laboratory

>> size(s) % size查看数组的维数

ans=

1 17

另外,由于MATLAB对字符串的操作与C语言几乎完全相同这里不在赘述。

4.2 矩阵及其运算

矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB语言的核心,在MATLAB语言系统中几乎一切运算均是以对矩阵的操作为基础的。下面重点介绍矩阵的生成、矩阵的基本运算和矩阵的数组运算。

4.2.1 矩阵的生成

1. 直接输入法

从键盘上直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点:

● 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。

● 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔。

● 矩阵大小不需要预先定义。

● 矩阵元素可以是运算表达式。

● 若“[ ]”中无元素表示空矩阵。

另外,在MATLAB语言中冒号的作用是最为丰富的。首先,可以用冒号来定义行向量。

例如:

>> a=1:0.5:4

a=

Columns 1 through 7

1 1.5 2 2.5 3 3.5 4

其次,通过使用冒号,可以截取指定矩阵中的部分。

例如:

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

A=

1 2 3

4 5 6

7 8 9

>> B=A (1:2, : )

B=

1 2 3

4 5 6

通过上例可以看到B是由矩阵A的1到2行和相应的所有列的元素构成的一个新的矩阵。在这里,冒号代替了矩阵A的所有列。

2.外部文件读入法

MATLAB语言也允许用户调用在MATLAB环境之外定义的矩阵。可以利用任意的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分断符分开,并按行列布置。读入矩阵的一种方法可参考3.3节数据交换系统。另外也可以利用load函数,其调用方法为: Load+文件名[参数]

Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat文件为操作对象,如果该文件在MATLAB搜索路径中不存在时,系统将会报错。

例如: 事先在记事本中建立文件: 1 1 1

(并以data1.txt保存) 1 2 3

1 3 6

在MATLAB命令窗口中输入:

>> load data1.txt

>> data1

data1=

1 1 1

1 2 3

1 3 6

3.特殊矩阵的生成

对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结构,MATLAB提供了一些函数用于生成这些矩阵。常用的有下面几个:

zeros(m) 生成m阶全0矩阵

eye(m) 生成m阶单位矩阵

ones(m) 生成m阶全1矩阵

rand(m) 生成m阶均匀分布的随机阵

randn(m) 生成m阶正态分布的随机矩阵

4.2.2 矩阵的基本数*算

矩阵的基本数*算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、秩运算、特征值运算等基本函数运算,这里进行简单介绍。

1.四则运算

矩阵的加、减、乘运算符分别为“+,—,*” ,用法与数字运算几乎相同,但计算时要满足其数学要求(如:同型矩阵才可以加、减)。

在MATLAB中矩阵的除法有两种形式:左除“\”和右除“/”。在传统的MATLAB算法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算逆矩阵直接进行除运算。通常右除要快一点,但左除可避免被除矩阵的奇异性所带来的麻烦。在MATLAB6中两者的区别不太大。

2.与常数的运算

常数与矩阵的运算即是同该矩阵的每一元素进行运算。但需注意进行数除时,常数通常只能做除数。

3.基本函数运算

矩阵的函数运算是矩阵运算中最实用的部分,常用的主要有以下几个:

det(a) 求矩阵a的行列式

eig(a) 求矩阵a的特征值

inv(a)或a ^ (-1) 求矩阵a的逆矩阵

rank(a) 求矩阵a的秩

trace(a) 求矩阵a的迹(对角线元素之和)

例如: >> a=[2 1 –3 –1; 3 1 0 7; -1 2 4 –2; 1 0 –1 5];

>> a1=det(a);

>> a2=det(inv(a));

>> a1*a2

ans=

1

注意:命令行后加“;”表示该命令执行但不显示执行结果。

4.2.2 矩阵的数组运算

我们在进行工程计算时常常遇到矩阵对应元素之间的运算。这种运算不同于前面讲的数*算,为有所区别,我们称之为数组运算。

1.基本数*算

数组的加、减与矩阵的加、减运算完全相同。而乘除法运算有相当大的区别,数组的乘除法是指两同维数组对应元素之间的乘除法,它们的运算符为“.*”和“./”或“.\”。前面讲过常数与矩阵的除法运算中常数只能做除数。在数组运算中有了“对应关系”的规定,数组与常数之间的除法运算没有任何*。

另外,矩阵的数组运算中还有幂运算(运算符为 .^ )、指数运算(exp)、对数运算(log)、和开方运算(sqrt)等。有了“对应元素”的规定,数组的运算实质上就是针对数组内部的每个元素进行的。

例如:

>> a=[2 1 -3 -1; 3 1 0 7; -1 2 4 -2; 1 0 -1 5];

>> a^3

ans=

32 -28 -101 34

99 -12 -151 239

-1 49 93 8

51 -17 -98 139

>> a .^3

ans=

8 1 -27 -1

27 1 0 343

-1 8 64 -8

1 0 -1 125

由上例可见矩阵的幂运算与数组的幂运算有很大的区别。

2.逻辑关系运算

逻辑运算是MATLAB中数组运算所特有的一种运算形式,也是几乎所有的高级语言普遍适用的一种运算。它们的具体符号、功能及用法见表4-2。

表4-2

符号运算符
功 能
函 数 名

= =
等于
eq

~ =
不等于
ne

<
小于
lt

>
大于
gt

<=
小于等于
le

>=
大于等于
ge

&
逻辑与
and

|
逻辑或
or

~
逻辑非
not

说明:

● 在关系比较中,若比较的双方为同维数组,则比较的结果也是同维数组。它的元

素值由0和1组成。当比较双方对应位置上的元素值满足比较关系时,它的对

应值为1,否则为0。

● 当比较的双方中一方为常数,另一方为一数组,则比较的结果与数组同维。

● 在算术运算、比较运算和逻辑与、或、非运算中,它们的优先级关系先后为:

比较运算、算术运算、逻辑与或非运算。

例如:

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

>> x=5;

>> y= ones(3)*5;

>> xa= x<=a

xa=

0 0 0

0 1 1

1 1 1

>> b=[0 1 0; 1 0 1; 0 0 1];

>> ab=a&b

ab=

0 1 0

1 0 1

0 0 1
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么电脑上的word界面变小为什么WORD里面的页面变的很小怎么设置回来... AHA拯救心脏救命术(Basic Life Support,BLS) 基础生命的基本顺序 机械制图第一视角与第三视角的区别 明日之后野外感染者据点都在什么地方 感染就聚集点位置分享 明日之后 明日之后哪些地图有强力感染者? 《明日之后》野外感染者据点一览 明日之后野外感染者据点去哪找 妙洁提醒你注意:保鲜膜有些不能加热 有些不能包肉 C盘里文件的修改日期是不是就代表那天我用过电脑,我是上午用的,可文件... 请教一下:用matlab编角度转弧度,为什么会出现未定义函数或变量 &#39;dms&#39;? 在使用矩阵之前需要预定义变量吗 matlab能不能对pi,inf这些预定义变量进行重新赋值 matlab中flops浮点运算数怎么使用? 请教用matlab编遗传算法程序如何给多个变量定义不同的范围 matlab 中表示函数输入参数个数的系统预定义的特殊变量是什么 matlab中的预定义变量 莫干山民宿推荐 噪音扰民遭投诉 小区开民宿究竟行不行 我的华为手机忘记了锁屏码 ,已经恢复了出厂设置 ,但是忘记了 账号和密码 ,页面上方也没有忘记密码? 博乐自己家有个院子开民宿行不行 住民宿安全吗? 民宿有人举报有房客嫖娼,民宿的房主会受到什么处罚? 最新系统的ipad如何解id锁 知隐名宿,精彩留“住”。什么意思 魅族魅蓝note2解锁 怎么把HPG转换成DXF文件 抖音私信别人打来语音通话怎么只震动? HL系统怎么把DAT转换成DXF格式 魅蓝note2屏幕解锁忘记密码怎么办? 在matlab程序中怎样给一个集族的成员编号? matlab如何定义动态数组 MATLAB &#47; simulink 中的embedded matlab function 模块报错问题 同等级别的八马大红袍和中茶大红袍哪个更好喝,更耐泡?貌似八马的便宜点。跪求喝过的网友回答。 u盘移除后如何恢复文件 7p电池容量,正常吗,我看有好多是3100和3000的,我这个是多少?看不懂 华为荣耀10和苹果7p哪个电池容量大 建设银行提前还款手机可以操作吗 蜻蜓fm手机外放怎么关闭 python 怎么把数据库解锁 跨境电商海外仓是什么?如何选择、操作? 谁能给我讲一下怎样制作一个音乐和所有图片同时播放的幻灯片? 跨境电商租海外仓合适,还是自建好些 快手上哪些热门段子 上面加的文字 是怎么做的 我拍摄的长视频在快手里面不能编辑! 要用什么软 跨境电商的前景怎么样? 我家电脑开机用一段时间后,就很卡啊,连机都关不了 蚁丛现在全国有多少家加盟旅行社 杭州旅行社加盟哪家好? 电脑为什么有时特别卡还关不了机也开不了任务管理器 配置是高配置 配置 没问题 笔记本突然很卡,又关不了机也开不了机这是怎么回事,求解