常用数学软件教程 033 第3章 MATLAB使用基础 第3节 字符串和符号矩阵
大学计算机基础-数学软件使用入门3_MATLAB
10.3.3 MATLAB 基本数值运 算
七、基本矩阵运算
MATLAB 直接支持矩阵、/ 运算。如:
>> A=[1 6 4;-4 2 8] >> B=[-2 0 1;2 -3 4] >> 2*A-3*B %矩阵数乘与矩阵减 >> (A+B)‘ %两个矩阵和的转置。 >> [1 2 3;-2 1 2]*[1 2 0;0 1 1;3 0 -1] %两个矩阵相乘
>> S1033(3,4)
全局变量和局部变量
➢局部变量:按赋值方式定义的变量,存贮于特 定工作空间,即 MATLAB 工作空间和函数工 作空间
➢全局变量:使用 global 关键字声明的变量, 存贮于 MATLA中B山大全学计局算工机科作学系空间
10.3.5 绘图
一、绘制二维图形
例10.34 在同一个直角坐标图中,绘制正弦函数 sin(x) 和余弦函数 cos(x) 在 [0,4π] 区间的曲线图。
中山大学计算机科学系
10.3.2 MATLAB 主窗口与帮 助
二、MATLAB 帮助
选择菜单“Help”→“Demos”命令打开“Help”窗 口学习 MATLAB 提供的样例演示教程。
在命令窗口中使用 help、doc、lookfor、exist、 what、who、whos、which、open 等帮助命令:
例10.31 求 1~100 内所有素数之和。
➢for 实现 (S1031.m) ➢while 实现 (S1031while.m)
中山大学计算机科学系
10.3.4 编写 MATLAB 程序
四、定义 M 函数
M 函数文件具有如下基本结构:
MATLAB字符和字符串
3.字符和字符串在MATLAB中,几个字符(Character)可以构一个字符串(String)。
一个字符串被视为一个行向量,而字符串中的每一个字符(含空格符),则是以其ASCII 的形式存放于此向量的每一个元素中,只是它的外显形式仍然是可读的字符。
字符串类型在数据的可视化、应用程序的交互方面有着非常重要的作用。
3.1 创建字符串1.一般字符串的创建在MATLAB中,所有的字符串都用两个单引号括起来,进行输入赋值。
如在MATLAB命令窗口中输入:>> a='matlab'a =matlab字符串的每个字符(空格也是字符)都是相应矩阵的一个元素,上述变量a是1×6阶的矩阵,可以用size(a)命令查得:>> size(a)ans =1 6 % 1行6列2.中文字符串的创建中文也可以作为字符串的内容。
但需要注意的是:在中文字符串的输入过程中,两边的单引号必须是英文状态的单引号。
例如:>> A='中文字符串输入演示'A =中文字符串输入演示3.字符串的寻访在MATLAB中,字符串的寻访可以通过其坐标来实现。
在一个字符串中,MATLAB按照从左至右的顺序对字符串中的字符依次编号(1,2,3,…)。
进行字符串的寻访,只需要像寻访一般矩阵那样即可。
例如在前面创建了中文字符串A之后可以得到:>> A(3:5)ans =字符串4.字符串数组的创建二维字符串(数组)的建立也非常简单。
可以像数值数组的建立那样直接输入,也可以使用str2mat等函数建立。
【例3-6】多行串数组的直接输入示例。
>> clear>> S=['This string array ''has multiple rows.']S =This string arrayhas multiple rows.>> size(S)ans =2 18需要注意的是:在直接输入多行字符串数组的时候,每一行的字符个数必须相同。
MATLAB应用第三章-符号计算
3. 1 数据类型 3.2 符号运算
数学运算中除了数值运算外,还有大量抽象运算(计算式中带有符号变 量、表达式的运算)。Matlab就是利用maple软件的符号运算功能来实 现这些符号运算的。 Maple : 通用的数学和工程软件,是世界上最值得信赖、最完整的数学 软件之一,被高等院校、研究机构和公司广泛应用,用户渗透超过97% 的世界主要高校和研究所,超过81%的世界财富五百强企业。 Maple提供世界上最强大的符号计算,无与伦比的数值计算,支持 用户界面开发和网络发布,内置丰富的数学求解库,覆盖几乎所有的数 学分支,所有的操作都是在一个所见即所得的交互式技术文档环境中完 成,完成计算的同时也生成了专业技术文件和演示报告。 Maple不仅仅提供编程工具,更重要的是提供数学知识。Maple是 教授、研究员、科学家、工程师、学生们必备的科学计算工具,从简单 的数字计算到高度复杂的非线性问题,Maple都可以帮助您快速、高效 地解决问题。用户通过Maple产品可以在单一的环境中完成多领域物理 系统建模和仿真、符号计算、数值计算、程序设计、技术文件、报告演 示、算法开发、外部程序连接等功能,满足各个层次用户的需要,从高 中学生到高级研究人员。
格 Eg 3-2 补充。 补充。 2)char函数创建:char(‘string1’,’string2’, …); Eg 3-3 各个字符串不须同大小, 各个字符串不须同大小,该函数自动补充空白 字符。 字符。 Eg 3-4
字符串与单元 1)cellstr将字符数组转换成单元数组。 2)char函数将单元数组转换成字符数组。 数组的转换 字符串的比较 1)strcmp(a,b):比较两个字符串所有字符是
Grand total is 33 elements using 462 bytes
MATLAB语言的基本使用方法
MATLAB语言的基本使用方法MATLAB (Matrix Laboratory) 是一种高级的技术计算语言和环境,常被广泛应用于科学、工程和工业领域中的数据分析、建模和仿真。
本文将介绍MATLAB的基本使用方法,包括变量和数据类型、运算符和表达式、函数和脚本的编写、图像绘制和数据可视化。
一、变量和数据类型在MATLAB中,可以使用赋值操作符「=」将值赋给变量。
MATLAB会自动根据赋值的内容确定变量的数据类型。
常见的数据类型包括:2.字符串类型:使用单引号或双引号括起来的字符串。
3. 逻辑类型:`true`和`false`。
4.数组类型:包括向量、矩阵和多维数组。
示例:```matlabx=2;%整数类型y=3.14;%浮点数类型z=1+2i;%复数类型str = 'Hello World'; % 字符串类型flag = true; % 逻辑类型arr = [1, 2, 3, 4]; % 行向量mat = [1, 2; 3, 4]; % 2x2矩阵```二、运算符和表达式1.算术运算符:加(`+`)、减(`-`)、乘(`*`)、除(`/`)、幂(`^`)等。
2.逻辑运算符:与(`&&`)、或(`,`)、非(`~`)等。
3.比较运算符:等于(`==`)、不等于(`~=`)、大于(`>`)、小于(`<`)、大于等于(`>=`)、小于等于(`<=`)等。
示例:```matlaba=3;b=4;c=a+b;%加法运算d=(a>b)&&(a<10);%逻辑运算e=(a==3),(b<=5);%比较运算```三、函数和脚本的编写1.函数的定义和调用使用`function`关键字定义函数,可以指定输入参数和输出参数。
函数的名称和文件名要相同,保存为.m文件。
函数可以在文件中的任何地方定义。
示例:```matlab%函数定义function result = myFunction(x, y)result = 2 * x + y;end%函数调用output = myFunction(3, 4);```2.脚本文件的编写脚本文件是一系列MATLAB语句的集合,可以按顺序执行。
MATLAB编程基础3
运算
查找与替换 k=findstr(s1,s2)函数会根据所给的字符串中的 字符来查找字符串,当查找成功后返回第一个 相同字符的具体位置。 >> s1='xuesheng'; s1和s2的位置可以调换, >> s2='e'; 即不管s1还是s2都可以 >> k=findstr(s1,s2) 是被查找的对象。即在 k = 长的字符串中查找短的 3 6 >> k=findstr(s2,s1) 字符串。
概念
>> a=['asd';'erty';'dfghjrt';'srtcat
All rows in the bracketed expression must have the
same number of columns. >> a=['asd ';'erty ';'dfghjrt';'sd a= asd erty dfghjrt sd
运算
>> a1={'xuesheng';'jiaoshi'}; >> a2={'xuesheng';'jiaogong'}; >> n=strcmp(a1,a2) n= 1 0 >> n=strncmp(a1,a2,4) n= 1 1 >> n=strncmp(a1,a2,5) n= 1 0 >> a='XUESHENG'; >> b='xuesheng'; >> strcmp(a,b) ans = 0 >> strcmpi(a,b) ans = 1
matlab字符串函数
matlab字符串函数MATLAB 是一款广泛应用于科学计算、算法开发、数据分析和可视化的强大软件。
字符串处理是 MATLAB 中常见的任务之一。
本文将详细介绍 MATLAB 中常用的字符串函数,并提供基本示例。
1.字符串基本操作字符串是一组字符的序列,在 MATLAB 中可以使用单引号或双引号来创建字符串。
例如:```str1 = 'hello, world';str2 = "hello, world";```MATLAB 中的字符串可以使用各种运算符进行操作,比如连接字符串、重复字符串、删除字符串等。
以下是一些常见的字符串操作:- 连接字符串:使用加号运算符可以将两个字符串合并为一个字符串。
例如:```str1 = 'hello';str2 = 'world';str3 = str1 + " " + str2;% str3 = 'hello world'```- 复制字符串:使用乘法运算符可以将一个字符串重复多次。
例如:```str1 = 'hello';str2 = str1 * 3;% str2 = 'hellohellohello'- 删除字符串:使用 delete 函数可以删除一个字符串的一部分。
例如:```str1 = 'hello, world';str2 = delete(str1, 6:11);% str2 = 'hello'```2.字符串查找和替换在处理字符串时,通常需要查找一个子串或将一个子串替换为另一个字符串。
MATLAB 提供了一些函数来完成这些任务。
- 查找子串:使用 findstr 函数可以查找一个子串在另一个字符串中的位置。
例如:```str1 = 'hello, world';pos = findstr(str1, 'world');% pos = 8```- 替换子串:使用 strrep 函数可以将一个字符串中的所有出现的一个子串替换为另一个字符串。
3MATLAB基础知识
3MATLAB基础知识一、基本运算与函数在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之后,并按入Enter键即可。
例如:>> (5*2+1。
3-0。
8)*10/25ans =4.2000MATLAB会将运算结果直接存入一变量ans,代表MATLAB运算后的答案(Answer)并显示其数值于萤幕上。
小提示:">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由于编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。
我们也可将上述运算式的结果设定给另一个变量x:x = (5*2+1。
3-0。
8)*10^2/25x = 42此时MATLAB会直接显示x的值。
由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。
小提示:MATLAB将所有变量均存成double的形式,所以不需经过变量声明(Variable declaration)。
MATLAB同时也会自动进行记忆体的使用和回收。
这些功能使的MATLAB易学易用,使用者可专心致力于撰写程式,而不必被软体枝节问题所干扰。
若不想让MATLAB每次都显示运算结果,只需在运算式最后加上分号(;)即可,如下例:y = sin(10)*exp(-0。
3*4^2);若要显示变量y的值,直接键入y即可:>>yy =-0。
0045在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB 常用到的数学函数。
变量也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算:x = [1 3 5 2];y = 2*x+1y = 3 7 11 5变量命名的规则:1.第一个字母必须是英文字母 2。
字母间不可留空格 3。
最多只能有19个字母,MATLAB会忽略多馀字母. 我们可以随意更改、增加或删除向量的元素:y(3) = 2 % 更改第三个元素y =3 7 2 5y(6) = 10 % 加入第六个元素y = 3 7 2 5 0 10y(4) = [] % 删除第四个元素,y = 3 7 2 0 10在上例中,MATLAB会忽略所有在百分比符号(%)之后的文字,因此百分比之后的文字均可视为程式的注解(Comments)。
MATLAB入门教程003基础知识
MATLAB支持多种编程范式,包括命令式编程、面向对象编程以及函数式 编程。
MATLAB应用领域
A
工程与科学计算
MATLAB广泛应用于各种工程与科学计算领域 ,如信号处理、图像处理、控制系统设计等。
数据分析与可视化
数组索引
通过索引访问数组元素,多维数组使用多个索引访问,如 `A(i,j,k)`表示访问三维数组A的第i页、第j行、第k列元素 。
广播机制
MATLAB中的广播机制允许不同大小的数组进行运算,会 自动扩展较小数组的维度以匹配较大数组的维度。
04 程序设计基础
M文件编写与执行
01
M文件是MATLAB中用于存储 代作与数据导入导出
文件读写操作
读取文件
01
使用`fopen`和`fscanf`等函数读取文本或二进制文件中的数据。
写入文件
02
使用`fopen`和`fprintf`等函数将数据写入文本或二进制文件中
。
文件定位
03
使用`fseek`和`ftell`等函数在文件中进行定位,实现随机访问。
数据导入导出方法
1 2
导入数据
使用`importdata`、`xlsread`、`csvread`等函数 导入不同格式的数据文件,如Excel、CSV等。
导出数据
使用`xlswrite`、`csvwrite`等函数将数据导出为 Excel、CSV等格式的文件。
3
自定义数据格式
通过编写脚本或函数,实现特定数据格式的导入 和导出。
02
编写M文件可以使用任何文本 编辑器,将代码保存为.m文件 即可。
matlab符号运算基础
4. 符号变量的确定
当符号表达式具有多个变量时,只有一个 变量是独立变量,MATLAB将基于以下准则 选择独立变量: • 小写字母i和j不能作为自由变量 • 小写字母x是首选符号变量 • 其余小写字母被选中的次序是:在英文 字母中,靠近x的优先,如果与x距离相 同,则x之后的优先 • 大写字母比所有小写字母都靠后
24
因式分解 factor(s):符号表达式s的因式分解 horner(s):符号表达式s的嵌套形式,即用多 层括号的形式表示
25
例 分解因式 x a
3
3
>> syms x a; >> f=x^3-a^3 f= x^3 - a^3 >> factor(f) ans = -(a - x)*(a^2 + a*x + x^2)
26
例 将符号矩阵表达式的各个元素分解为 多个因式 x 3 b3 x 4 1 5 6 x 1 x 1
>> syms x b; >> f=[x^3+b^3 x^4-1; x^5-1 x^6-1] f= [ b^3 + x^3, x^4 - 1] [ x^5 - 1, x^6 - 1] >> factor(f)
三、符号运算基础
MATLAB 不仅具有数值运算功能,还开发了 实现符号计算的工具包Symbolic Math Toolbox
•符号运算的操作对象是非数值的符号对象
1
• 符号数学工具箱中的工具是建立在功能强 大的Maple的基础上。 • 它最初是由加拿大的滑铁卢(Waterloo)大 学开发出来的。 • 如果要求Matlab进行符号运算,那么首先 由Maple计算并将结果返回到Matlab命令 窗口。
第3讲 MATLAB语言的符号运算
2、微分
Matlab求微分的函数是diff()
说明:
①用diff(f)求 f 对预设独立变量的一次微分;
② diff(f,t)求 f 对独立变量 t 的一次微分;
③用diff(f,n)求 f 对预设独立变量的n次微分 ④diff(f,t,n)求 f 对独立变量 t 的n次微分; ⑤ f 可以是标量、向量、矩阵。
调用格式如下:
通过F=fourier(f)求时域函数f的Fourier变换
①如果采用F=fourier(f)的格式,默认积分变量是x;
③invfourier()为Fourier反变换。
②如果采用F=fourier(f,u)的格式,指定u为积分变量;
例:计算时间函数的 >>syms t w
f (t ) e
(t ) y (t ) x (t ) x(t ) y
[x,y]= dsolve(‘Dx=y’,Dy=-x’) [f,g]= dsolve(‘Df=3*f+4*g’,’Dg=-5*f+2*g’)
⑥ 2个微分方程,给定初始条件 [x,y]= dsolve(‘Dx=y’,Dy=-x’,’x(0)=0’,’y(0)=1’)
3.4 微分方程求解
符号运算中的微分方程求解函数可利用如下格式
dsolve(‘方程1’,‘方程2’,…) 函数格式说明: ①可多至12个微分方程的求解; ②默认自变量为x,并可任意指定自变量t,u等;
③方程的各阶导数项以大写字母“D”作为标识,后接 数字阶数,再接解变量名;
④初始条件以符号代数方程给出,如果初始条件项缺 省,其默认常数为C1,C2,…等; ⑤返回变量的格式为:[Y1,Y2,…]=dsolve(…)
3.6 符号表达式的运算
MATLAB 字符串操作
MATLAB 字符串操作函数MATLAB中的字符串用单引号表示,如'abcd'。
如果想在字符串里包含一个单引号怎么办?用两个连着的单引号。
例如:'It''s sunny.' 表示字符串It's sunny. 四个连着的单引号''''表示内容为一个单引号的字符。
1. length(a):获取字符串a的长度。
例如:a = 'matlab';t = length(a)2. d=strcat(a,b):连接两个字符串a和b,每个字符串最右边的空格被裁切。
例如:a = 'matlab '; b = '2012a ';d=strcat(a,b), t = length(d)例如:a = {'abcde', 'fghi'};b = {'jkl', 'mn'};ab = strcat(a, b)c = 'Q';abc = strcat(a,b,c)3. e=strvcat(a,b,..,m):连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格,使与最长字符串相等,会忽略空字符串。
例如:a='a';b='b b';c='cccc';m='';e = strvcat(a,b,m,c)size(e)4. char(a,b,..,m):同上连接,但空字符串会被空格填满。
f = char(a,b,m,c)size(f)5. 字符串比较strcmp 比较两个字符串是否完全相等,是,返回真,否则,返回假;strncmp 比较两个字符串前n个字符是否相等,是,返回真,否则,返回假;strcmpi 比较两个字符串是否完全相等,忽略字母大小写;strncmpi 比较两个字符串前n个字符是否相等,忽略字母大小写。
matlab字符运算
matlab字符运算一、引言MATLAB是一种功能强大的科学计算软件,除了能进行数值计算外,还具备对字符进行各种运算的能力。
本文将介绍MATLAB字符运算的相关知识。
二、MATLAB字符类型在MATLAB中,字符被表示为字符串(string)。
字符串是由一连串的字符组成的,可以包含字母、数字、标点符号等。
在MATLAB中,字符串被认为是一种数据类型,并且具备一系列的操作方法。
三、字符的定义与表示在MATLAB中,我们可以通过使用单引号或双引号来定义字符串。
例如,我们可以使用以下方式定义一个字符串变量x:x = 'Hello World';或者x = "Hello World";这两种方式都可以定义一个包含字符串"Hello World"的变量x。
四、MATLAB字符的常用操作1. 字符串连接通过使用加号(+)可以实现字符串的连接操作。
例如,我们可以通过以下方式将两个字符串连接起来:str1 = 'Hello ';str2 = 'World';result = str1 + str2;运行以上代码后,result的值将为'Hello World'。
2. 字符串长度使用内置函数length可以获取字符串的长度。
例如:str = 'Hello World';len = length(str);运行以上代码后,len的值将为11。
3. 字符串切片可以使用方括号([])和冒号(:)来对字符串进行切片操作。
例如,我们可以通过以下方式获取字符串的前三个字符:str = 'Hello World';slice = str(1:3);运行以上代码后,slice的值将为'Hel'。
4. 字符串查找和替换MATLAB提供了一些函数用于在字符串中查找和替换特定字符或子字符串。
matlab-003PPT课件
➢ char()函数用法和strvcat()函数类似,不过strvcat ()函数 会忽略空字符串,而char ()函数不会。
2021/7/23
5
例: >>a=‘a’;b=‘bb’;c=‘’;
>> [a;b]
??? Error using ==> vertcat
All rows in the bracketed expression must have the same number of columns.
Matlab工程应用
教 师:王 葛 燕山大学 机械工程学院
2021/7/23
1
第3章 字符串、单元和结构
3.1 字符串
3.2 单元数组
3.3 结构体
2021/7/23
2
3.1 字符串
字符串的创建
字符串经常用于代码标记b内部用字符串的编码 数值对字符串进行运算,因此,字符串本质上是一个数字 串,输出时才按字符格式显示。
例:
>>a='Building 17#';
>>isletter(a)
ans =
11 1 1 1 1 1 1 0 0 0 0
>>isspace(a)
ans =
000000001000
2021/7/23
11
字符串的查找
➢ strfind(str,pattern) 查找字符串str中是否有pattern子串, 返回子串出现的位置,若没有出现,返回空数组;
ans=
ans=
ans=
0
1
0
>>strcmpi(a,c), strncmp(b,d,3), strncmpi(b,d,3)
matlab教程第3讲
数据类型归纳
3
3.1 字符串
关于字符串
MATLAB处理字符(Characters)与字符串(Strings) 的相关指令大部分都放在下列目录之中: {MATLAB根目录}\toolbox\matlab\strfun
其中的「strfun」就是代表「String Functions」。 若要查询与字符和字符串相关的指令,可在 MATLAB 下输入: help strfun 或是 help strings
1、字符串转换函数: 指令
abs
char
含义
把串译成ASCⅡ码
任何类型转换成串
指令
base2dec
bin2dec
含义
base、bin、hex与 dec之间的转换。 base:任意进制串 bin:二进制串 hex:十六进制串 dec:十进制整数
整数转换成串
double
fprintf sprintf sscanf setstr
s2 =
s2=strvcat('Hello,', '','Nice to meet you!'); s1,s2 %s_s=size(s),s_s1=size(s1),s_s2 %=size(s2)
Hello, Nice to meet you!
区别: str2m at认为 空串代 表空行; strvc at省略 空串。
2. 利用串操作函数创建多行串数组 利用专门的str2mat、strvcat和char 函数可以构造出字符串数组,而不必考 虑每行的字符数是否相等,总是按最长 的设置,不足的末尾用空格补齐。
3.1.2 复杂字符串数组的创建(续)
2.利用串操作函数创建多行串数组 算例见下页:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3字符串和符号矩阵在数学、物理等许多基础学科和电路、力学工程应用中,常常要进行公式的推演变换、代数方程的符号解。
微积分的解析解等,处理这类问题就要用到符号运算。
符号运算是对方程或代数式中的数学符号进行运算操作,运算结果是数学表达式而不是数值。
例如高等数学中有求函数的导函数和求函数导数在某一点取值的问题,前者属于符号运算,后者属于数值计算。
MA TLAB开发了符号运算工具包(Symbolic Math Toolbox),可以进行代数式的因式分解。
展开和化简,函数的幂级数展开,求微积分及微分方程组的解析解等多种运算。
另外,MA TLAB中的符号运算是按有理数的运算方式进行的,如对未知量x、有理数(如1/3)或超越数(如π)等运算都没有有效位数的限制,也没有舍入误差,所以相当精确,这种精确的结果可以任意转换成任意精度的数值解,这对数值计算来说,是一个难能可贵的优点。
3.3.1字符串和自定义函数字符串在数据处理、构造表和函数求值运算中都很有用。
为了按照要求的格式进行结果的显示,就需要熟悉MA TLAB中关于字符串的操作。
1.字符串及其显示(1)字符串和字符串变量名。
用单引号界定的排成序列的各种符号,包括数字、英文、横线、括号及表达式、方程式等,都被看作字符串(也称字符串数据或支付量)。
用赋值号“=”据按一定的格式显示。
a)字符串数据显示指令。
最常用的指令是disp,它的使用格式为:●disp(zs)①输入参数zs可以是数值变量、字符串变量(或它们的变量名)和被界定的字符串,但每次只能有一个内容,各变量名之间用空格分开。
②zs若是字符串,回车后照原样显示(包括字符间空格大小);zs若是数值变量名,则显示它代表的数据。
b)空字符(空格)输出显示指令。
字符或数据间的空格大小,除在字符串间留有空格外,也可以利用指令blanks控制,它的使用格式为:●blanks (n)①该指令作为disp指令的输入参数,可夹杂在数据或字符串中间使用。
②输入参数n为战术,表示遇到blanks (n)时输出n个字符的空格。
③仅输入disp(blanks (n)),回车后将使光标下移n行。
例3.3.1构造一张函数表,显示sint,e t,lnt在[0.1,4]∈间取值,t取值间隔为tπ0.2,并显示出这张函数表的表头。
解键入:disp([blanks(4)' t 'blanks(9) s1 blanks(5)s2 blanks(3) s3 ]),disp([t sin(t) exp(t) log(t)])代替“显示表头”和“显示数据”两句,表头中的空格用空字符指令方法显示,回车得出与显示,常用指令sprintf ,它的使用格式为:sprintf(‘z ’,s1,s2,…)① 输入参数第一部分,’z ’,由两部分组成(这两部分可以交错混合排列)。
一是打算作为字符串显示的内容(字符、文字、符号等),二是控制第二部分数据s1,s2,…,显示形式的“格式符”。
格式符及其意义列在表3-7中。
两个格式符之间空格的大小就是数据显示时的间距。
表3-7格式符 显示格式%e%f%d%g m.nf \n指数格式 小数格式 十进制整数格式自动选择指数或小数中较短的格式数据共占m 个字符宽度,显示n 位小数 换行符② 输入参数第二部分s1,s2,…是打算输出的数据或数值变量名称,它们之间用逗号分开。
③ 回车后输出s1,s2,…代表的数据,数据按’z ’中与其排序对应的格式符所要求的形式显示。
如果格式符少于数据个数,格式符可循环使用。
例3.3.2 分两行输出自然数e 、ln5和最小浮点数eps 的符号(即表头)和数值。
解 键入:e=2.718282e+000”。
可以同时输出要显示的字符串和数据,而指令disp却无此功能。
2.自定义函数求值把基本初等函数用有限个四则运算符号连接起来,就可以构成任意初等函数,即自定义函数。
MA TLAB中可以用数值或字符变量表达式、内联函数指令、自己编写的M-函数文件等多种方法自定义函数,然后进行函数的求值运算。
(1)用数值变量表达式自定义函数。
给数值变量名赋值后,用MA TLAB数组算法的四则运算符号把这些代表数值矩阵的数值变量名连接成函数表达式(即自定义函数),回车便可得出自定义函数的取值。
创建复数表达式时必须注意:●表达式知道四则运算必须用数组算法符号,否则就成为矩阵函数;●表达式两端不得加引号,否则整个表达式将被定义为字符串;●这种函数表达式的使用是“一次性”的,再次使用是的重新输入;●在输入表达式前必须先给数值变量赋值。
(2)用字符串变量表达式自定义函数。
把函数表达式定义成字符串表达式(自定义函数),给字符串赋值后,通过数值转换指令eval将字符串表达式转换成数值,从而得出函数值。
创建字符串表达式时要注意:●表达式两端必须加单引号界定,使它被定义成字符串表达式;●表达式中的四则运算必须用数组算法符号,否则就成为矩阵函数;●将表达式赋值给一个标识符,便被保存在工作空间中,关机前可以多次调用;● 可以先输入“字符串表达式”,后给字符串变量赋值。
(3)用内联函数指令自定义函数。
内联函数指令为:inline 。
若定义名为fun2.1的函数,其格如下:● fun2.1= inline (字符串表达式)① 输入参数“字符串表达式”可以是函数字符串表达式,或它的标识符。
② 该指令定义了名称为fun2.1的内联函数,函数名称可选用任意标识符。
③ 函数表达式用数组算法时,定义的是函数矩阵(矩阵的元素是函数);若用矩阵算法时则定义的是矩阵函数(自变量是矩阵的函数)。
④ 调用该内联函数的格式为fun2.1(a ),回车将输出把数值矩阵代入函数的结果。
⑤ 内联函数被保存在工作空间中,关机前可以多次调用。
例3.3.4 已知23352()7105i j a A π⨯⎡⎤==⎢⎥⎣⎦,用3种方法求()i j i j y f a = 23sin e A A A -=+-的值。
(3)(5)(2)88.826424.1115 4.6165()(7)(10)(5)49.282799.838924.1115f f f f f f f YA π⎡⎤⎡⎤===⎢⎥⎢⎥⎣⎦⎣⎦矩阵相等即对应元素相等,所以得出:223225(3)2(3)sin(3)88.8264(5)2(5)sin (5)24.1115f ef e ππππ--=⨯+-==⨯+-=……(2)用字符变量定义函数。
键入: >> clear>> f12='A.^2+sin(A).^3-exp(-A)';%定义字符串表达式,然后再给A 赋值 >> A=[3*pi 5 2;7 10 5];f12_A=eval(f12)%或eval('A.^2+sin(A).^3-exp(-A)')f12_A =88.8264 24.1115 4.6165 49.2827 99.8389 24.1115>> clear>> f12='A.^2+sin(A).^3-exp(-A)';%定义字符串表达式,然后再给A 赋值 >> A=[3*pi 5 2;7 10 5];eval('A.^2+sin(A).^3-exp(-A)') ans =88.8264 24.1115 4.6165键入命令输出结果键入命令输出结果>> clear>> f2=inline('x.^2+sin(x).^3-exp(-x)')%先定义内联函数f2 =Inline function:f2(x) = x.^2+sin(x).^3-exp(-x)>> A=[3*pi 5 2;7 10 5];f2(A)%再代入自变量值ans =88.8264 24.1115 4.616549.2827 99.8389 24.1115 键入命令,按回车键输出结果定义内联函数f2(x) 键入命令,按回车键输出结果关机前使用上述(2)、(3)两种方法计算函数值就像代公式一样方便。
但是一旦关机,用两种方法编辑的函数就不复存在了。
对于需要多次调用的函数,可以用后面的的编辑方法把它编辑成M-文件并存盘,这样就像使用MA TLAB中固有指令一样,尔不受关机的影响。
3.3.2符号变量1.符号变量和符号表达式的创建与数学和物理公式中的代数符号一样,用于表示代数变量的标识符叫符号量。
符号量和符号表达式是通过专用指令syms和sym来创建的。
代表符号量的标识符称为符号变量名。
(1)用syms创建符号量。
syms是创建符号量的便捷指令,它的使用格式为:●syms a1 a2 a3…flag1①输入参量a1 a2 a3…均为需要定义成符号量的单个字符或标识符,一次可以定义多项。
输入参量a1 a2 a3…不能是数字、函数表达式或方程式。
②输入参量a1 a2 a3…flag1均不用加引号界定,它们之间必须用空格分开。
③参数flag1可根据需要选取下述字符串之一:positive—定义成正实型符号变量;real—定义成实型符号变量;unreal—定义成复数型符号变量。
若省略flag1,则默认选取“unreal”。
④数字、运算符和被syms定义的符号量被运算符连接成的表达式叫做符号表达式。
(2)用创建符号量、符号表达式等。
s yms指令不仅可以创建符号量,而且还能直接创建符号表达式等。
使用格式为:●标识符= syms(A,flag)①输入参量A可以是数字或字符串,当然也可以是字符串变量名、字符表达式或字符方程式,甚至可以是界定成字符串的汉字,但每次只能定义一项。
②回车后A将被定义成符号量并赋值给赋值号左边的标识符,输入a1=sym(‘a1’)与输入syms a1等价。
③若A为字符串时,flag可选取的内容与syms中的flag1完全相同,但选定的flag1内容必须用单引号界定,此时省略flag,则默认选取“unreal”。
④若A为数字时,可取:‘d’—定义成最接近的十进制浮点精确表示形式;‘e’—定义成带估计误差的有理表示形式;‘f’—定义成十六进制浮点表示形式;‘r’—定义成最接近的有理表示形式,如p/q等。
此时省略flag,则默认选取“r”。
注意,键入s1=‘hello’和s2=sym(s1)得出的结果形式一样,但变量类型不同;键入s3=sym(‘s1’)和s2所得结果不同;键入sym(hello)则是错误的。
例3.3.5把s1、s2和s3分别定义成正实型、实型和复数型符号变量,并予以查验。
>> s1r=real(s1),s1m=imag(s1),s2r=real(s2),s2m=imag(s2),s3r=real(s3),s3m=imag(s3)s1r =s1s1m =s2r =s2s2m =s3r =1/2*s3+1/2*conj(s3)解 键入:>> clear>> s3=1/2,s4='1/2',s5=sym(1/2) s3 =0.5000 s4 = 1/2 s5 = 1/2>> whos s3 s4 s5Name Size Bytes Classs31x1 8 double array s4 1x3 6 char array s5 1x1 130 sym objectGrand total is 8 elements using 144 bytes键入命令,按回车键输出结果键入命令,按回车键 输出结果数值型数据(双精度数值) 字符串型数据 符号型数据 见p106s3和s5虽然形式一样,但其类型性质不同。