ch3 字符串、元胞及构架数组

合集下载

三.字符串、元胞和构架数组

三.字符串、元胞和构架数组

disp指令显示字符串
disp('请输入2*2的矩阵a') str1='Hello' ''MATLAB'''] , str2=['I like
演示
disp(char(str1,str2));
3.2 元胞数组
特点: (1)元胞数组的基本组成单元是元胞(cell),元胞在数组中以下标 来进行区分; (2)元胞可以是任何类型、任意大小的数组(如:数值数组、字符 串数组、符号对象等); (3)一个元胞数组中各个元胞可以是不同类型的内容; 元胞数组的维数不受限制,可以采用单下标或全下标寻址; 注意: 元胞和元胞里的内容是两个不同范畴的东西,分别通过“元胞 外标识(Cell Indexing)”和”元胞内编址(Content Addressing)” 来寻访。“外标识的元胞元素”用圆括号对(),而“编址元胞元 素内涵”用花括号对{},如A(2,3)表示元胞数组A第2行第3列的 元胞,A{2,3}则表示元胞数组A第2行第3列的元胞中的内容。
三.字符串、元胞、构架数组
字符串、元胞、构架数组
◇字符串数组(Character String Array) 字符串数组的属性和标识 复杂字符串数组的创建 串转换函数和串操作函数 ◇元胞数组(Cell Array) 元胞数组的创建 元胞数组内容的显示 元胞数组内容的提取 元胞数组的扩充、收缩和重组
数值转换成串
2.字符串操作函数
str1='Hello' ; str2=['I like ''MATLAB'''] %重复单引号来输入含有单引号的字符串 %length(str2) %字符串str2的长度 %x1=double(str1) %查看字符串str1的ASCII码

4. matlab字符串数组、元胞数组和构架数组

4. matlab字符串数组、元胞数组和构架数组

5数值计算5.1引言本章将花较大的篇幅讨论若干常见数值计算问题:线性分析、一元和多元函数分析、微积分、数据分析、以及常微分方程求解等。

但与一般数值计算教科书不同,本章的讨论重点是:如何利用现有的世界顶级数值计算资源MATLAB。

至于数学描述,本章将遵循“最低限度自封闭”的原则处理,以最简明的方式阐述理论数学、数值数学和MATLAB计算指令之间的内在联系及区别。

对于那些熟悉其他高级语言(如FORTRAN,Pascal,C++)的读者来说,通过本章,MATLAB卓越的数组处理能力、浩瀚而灵活的M函数指令、丰富而友善的图形显示指令将使他们体验到解题视野的豁然开朗,感受到摆脱烦琐编程后的眉眼舒展。

对于那些经过大学基本数学教程的读者来说,通过本章,MATLAB精良完善的计算指令,自然易读的程序将使他们感悟“教程”数学的基础地位和局限性,看到从“理想化”简单算例通向科学研究和工程设计实际问题的一条途径。

对于那些熟悉MATLAB基本指令的读者来说,通过本章,围绕基本数值问题展开的内容将使他们体会到各别指令的运用场合和内在关系,获得综合运用不同指令解决具体问题的思路和借鉴。

由于MATLAB的基本运算单元是数组,所以本章内容将从矩阵分析、线性代数的数值计算开始。

然后再介绍函数零点、极值的求取,数值微积分,数理统计和分析,拟合和插值,Fourier分析,和一般常微分方程初值问题。

本章的最后讨论稀疏矩阵的处理,因为这只有在大型问题中,才须特别处理。

从总体上讲,本章各节之间没有依从关系,即读者没有必要从头到尾系统阅读本章内容。

读者完全可以根据需要阅读有关节次。

除特别说明外,每节中的例题指令是独立完整的,因此读者可以很容易地在自己机器上实践。

5.2LU分解和恰定方程组的解5.2.1LU分解、行列式和逆(1)LU分解(2)行列式和逆5.2.2恰定方程组的解【*例5.2.2-1】“求逆”法和“左除”法解恰定方程的性能对比(1)为对比这两种方法的性能,先用以下指令构造一个条件数很大的高阶恰定方程。

Matlab字符串、单元数组和结构数组

Matlab字符串、单元数组和结构数组

2.2 字符串、单元数组和结构数组教学目标:1. 掌握字符串的创建方法;2. 掌握单元数组的创建方法;3. 掌握结构数组的创建方法。

重点、难点:MATLAB字符串创建;结构数组创建。

教学方法:讲授、上机实践课时安排:2教学过程:新课导入:对于MATLAB编程来说,字符串、单元数组和结构数组是MATLAB最基本的三种数据类型。

1. 字符串概述:1)字符串在数据的可视化、应用程序的交互方面起到非常重要的作用2)创建字符串时需要使用单引号将字符串的内容包括起来3)字符串一般以行向量形式存在,并且每一个字符占用两个字节的内存主要内容1.1字符串创建1.2字符串的合并1.3字符串函数1.1字符串创建直接用单引号将一系列字符串括起来,其中的每个字符都是该字符串的一个元素,通常用两个字节来存储;当字符串文字中包含单引号时,每个单引号符号需要使用2个连续的单引号字符;并且可以直接引用短的字符串构成长的字符串。

>> a='hello';>> b='''你好''';>> c=[a,' ',b,'.'];>> aa = hello>> bb = '你好'>> cc = hello '你好'.1.2字符串的合并1. 用char把一连串的字符合并起来>> c1=char('China changchun','ccit');>> c1c1 = China changchun ccit2. 用strcat 和strvcat把一连串的字符合并起来>> a1='auto';>> a2='film';>> a3='forest';>> a4='city';>> b1=strvcat(a1,a4);>> b1b1 = autocity>> b=strcat(a1,a2)>> bb = autofilm注意,函数strcat()在合并字符串的同时会把字符串结尾的空格删除。

matlab第三章 字符串数组、元胞数组和构架数组

matlab第三章 字符串数组、元胞数组和构架数组
12
0.456 0.0185
字符串的应用:作出函数图形,并标注最大值点。 字符串的应用:作出函数图形,并标注最大值点。
y = e −2t sin(3t ) 0 ≤ t ≤ 10
%清除内存变量 clear %时间 t 从 0 到 10 每隔 0.01 均匀采样 t = 0 : 0.01 : 10; %对应每一个 t 求 y 值 y = exp( -2*t ) .* sin( 3*t ); %求最大值 y_max 及其下标 i_max [ y_max, i_max ] = max( y ); %横坐标字符串 t_text = [ 't = ', num2str( t(i_max) ) ]; %纵坐标字符串 y_text = [ 'y = ', num2str( y_max ) ]; max_text = char( 'Maxium', t_text, y_text ); %三行字符来标识最大值点 %图名称字符串 Title = [ 'y = exp( -2*t ) .* sin( 3*t )' ]; %新建一个图形窗 figure %画纵坐标为0的水平线 plot( t,zeros( size(t) ), 'k' ) %保持图形不被清除 hold on %蓝色实线画曲线 y(t) plot( t, y, 'b' ) plot( t(i_max), y_max, 'r.', 'MarkerSize', 20 ) %大小为 20 的红圆点标记最大值点 text( t(i_max)+0.3, y_max+0.05, max_text ) %在最大值点附近显示注释字符 %显示图名、横坐标名、纵坐标名 title( Title ); xlabel( 't' ) ylabel( 'y' ) %取消图形保持 13 hold off

字符串、单元数组和结构体

字符串、单元数组和结构体
8
字符串操作——字符串运算——字符串比较 字符串操作——字符串运算——字符串比较 ——字符串运算——
除了利用上面两个函数进行比较之外, 除了利用上面两个函数进行比较之外,还可以通过简 单运算比较两个字符串。 单运算比较两个字符串。当两个字符串拥有相同的维数 运算法则, 时,可以利用 MATLAB 运算法则,对字符数组进行比 符号 符号意义 字符数组的比较与数值数组的比较基本相同, 较。字符数组的比较与数值数组的比较基本相同,不同 之处在于字符数组比较时进行比较的是字符的 ASCII 码 == 等于 进行比较返回的结果为一个数值向量, 值。进行比较返回的结果为一个数值向量,元素为对应 ~= 不等于 字符比较的结果。 字符比较的结果。需要注意的是在利用这些运算比较字 < 小于 符串时,相互比较的两个字符串必须有相同数目的元素。 符串时,相互比较的两个字符串必须有相同数目的元素。
字符串及其生成
码的字符数组,因此,与普通数组一样, 字符串是一个 ASCII 码的字符数组,因此,与普通数组一样,字 符串也可以形成矩阵(表现为一个字符串有多行)。但是, )。但是 符串也可以形成矩阵(表现为一个字符串有多行)。但是,这些 行必须有相同数目的列数。 行必须有相同数目的列数。 例如: 例如: 'argu >>str=['Hefei University of Technology‘ ; 'arguments dimension consis tent'] str = Hefei University of Technology argu arguments dimension consistent 'argu >>str=['Hefei University of Technology‘ ; 'arguments dimension not co nsistent'] ??? Error using ==> vertcat consistent. CAT arguments dimensions are not consistent.

补 字符串数组、元胞数组和构架数组

补 字符串数组、元胞数组和构架数组
6






2014-5-11

三、构架数组
第3章 符号计算

构架数组也能存放各类数据,由结构变量和属性名组成,用指针
操作符“.”连接结构变量名和属性名。例如, parameter.temperature

parameter.humidity 则构架数组parameter由两个属性组成
2014-5-11
5

2014-5-11
补充章节 字符串数组、元胞数组和构架数组

二、元胞数组 元胞数组用于存放各类数据,由元胞元素和元胞内容两部分组成。 用花括号{ }表示元胞内容,用圆括号( )表示元胞元素。 元胞可以存放任何类型、任何大小的数组,同一个元胞数组中各 元胞的内容可不相同。 celldisp( )显示元胞数组内容 a{1,1}={'an example of cell array'}; a{1,2}={[1,2;3,4]}; a{2,1}=tf(1,[1,8]); a{2,2}={a{1,2};'this is an example'}; celldisp(a)

一、字符串数组


对数据可视化、图形用户界面GUI的制作都需要用到字符串数组
2、单行字符串数组的创建、访问、属性 (1)创建串数组 下面创建一个由19个字符组成的串,把这些字符放在单引号内。 a='this is an example.‘ b='这是一个算例。' (2)串数组的大小 中文字符、英文字母、空格和标点都占据一个字符元素位。 size(a) (3)串数组的访问 a14=a(1:4)
2

字符、元胞数组

字符、元胞数组



串操作函数(一) 含 义
创建n个空格串
把串s1,s2等逐个写成行,形成多行数组 删去串尾部的空格符 把串s当作MATLAB指令运行 把串s1当作MATLAB指令运行。若s1运行发生错误, 则运行sc 对输入宗量x,y等计算函数f 在较长串中,找出短串的起始字符的下标 s是字符串则判“真”给出逻辑1 以逻辑1指示s里文字符的位置 以逻辑1指示s里空格符的位置 MATLAB发出的最新错误信息
X-进制串转换为十进制整数 hex2num 二进制串转换为十进制整数 把ASCII码及其他非数值类 数据转换成字符串 十进制整数转换为X进制串 十进制整数转换为二进制串 十进制整数转换为十六进制 串 把任何类型数据转换成双精 度数值 把格式化数据写到文件或屏 幕 int2str mat2str num2str setstr sprintf sscanf str2num

元胞数组的内容显示


元胞数组的收缩和重组

元胞数组内容的调取


取一个元胞 取一个元胞的内容 取元胞内的子数组 同时调取多个元胞内容
第三节 构架数组



构架数组:与元胞数组一样,也能在一个数组里存放 各类数据。从一定意义上讲,构架数组组织数据的能 力比元胞数组更强、更富于变化。 构架数组的基本组分是构架(Structure)。数组中的 每个构架是平等的,它们以下标区分。构架必须在划 分域(Fields,字段)后才能使用。数据不能直接存 放于构架,而只能存放在域(字段)中。构架的域 (字段)可存放任何类型、任何大小的数组(如任意 维数值数组、字符串数组、符号对象等)。而且,不 同构架的同名域(字段)中存放的内容可以不同。 构架数组的维数不受限制。构架数组对构架的编址方 法也有单下标编址和全下标编址两种。

数学实验讲义3

数学实验讲义3
与数值数组相比,字符串数组(以下简称串数组)在 MATLAB 中的重要性较小,但假 如没有串数组及相应的操作,数据的可视化、图形用户界面 GUI 的制作将会遇到困难,构 作 MATLAB 的宏指令也将会遇到困难。 既然字符串与数组是两种不同的数据类(Class),它们的创建方式也就不同。数值变量 是通过在指令窗数字赋值创建的。而字符变量的创建方式是:在指令窗中,先把待建的字符 放在“单引号对”中,再按回车键。注意:“单引号对”必须在英文状态下输入,其作用是 MATLAB 识别送来内容“身份”(是变量名、数字或字符串)所必需的。 数值标量在内存中存放是需要 8 个字节(Byte) ,而一个字符的存放只需 2 个字节。
-3-
>> w=find(a >= 'a' & a<= 'z') w= Columns 1 through 14 2 3 4 6 7 >> ascii_a(w)=ascii_a(w)-32
% 找出串数组 a 中,小写字母的元素位置
9 10 12 13 14 15 16 17 18 % 大小写字母 ASCII 值差 32,用数值加法改变 % 部分码值
3.1.1 字符串入门
例 3.1.1 先介绍一个实例 >> clear % 清除所有内存变量 >> a=12345.6789 % 给变量 a 赋数值标量 a= 1.2346e+004 >> class(a) % 给变量 a 的类别进行判断 ans = double >> a_s=size(a) % 数值数组 a 的“大小” a_s = 1 1 >> b='S' % 给变量 b 赋字符标量(即单个字符) b= S >> class(b) % 给变量 b 的类别进行判断 ans = char >> b_s=size(b) % 字符串数组 b 的“大小” b_s = 1 1 >> whos Name Size Bytes Class a 1x1 8 double array a_s 1x2 16 double array ans 1x4 8 char array b 1x1 2 char array

第三讲字符串数组、细胞数组和构架数组

第三讲字符串数组、细胞数组和构架数组

-5-Biblioteka S3 = 这 字符 串数组 由 4 行组成 >> size(S3) ans = 5 5 在用这三个函数创建多行串数组时, 不必担心每行字符数是否相等。 它们总会按最长行 设置第二维的长度,其他行的尾部用空格填充。 三、转换函数产生数码字符串 例 3.1.5 常用的转换函数 int2str,num2str,mat2str 示例 (1)int2str 把整数数组转换成串数组(非整数将被四舍五入后再转换) >> A=eye(2,4) % 生成一个(2 × 4)数值数组 A= 1 0 0 0 0 1 0 0 >> A_str1=int2str(A) % 转换成(2 × 10)串数组 A_str1 = 1 0 0 0 0 1 0 0 >> size(A_str1) % 串数组 A_str1 的“大小” ans = 2 10 (2)num2str 把非整数数组转换成串数组(常用于图形中,数据点的标识) >> rand('state',0) % 把均匀分布伪随机发生器置为 0 状态 >> B=rand(2,4) % 生成(2 × 4)的均匀分布随机数值矩阵 B= 0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185 >> B3=num2str(B,3) % 保持 3 位有效数字,转换为串 B3 = 0.95 0.607 0.891 0.456 0.231 0.486 0.762 0.0185 (3)mat2str 把数值数组转换成输入形态的串数组(常与 eval 指令配用) >> B_str=mat2str(B,4) % 保持 4 位有效数字,转换为“数组输入形式”串 B_str = [0.9501 0.6068 0.8913 0.4565;0.2311 0.486 0.7621 0.0185] >> Expression=['exp(-',B_str,')'] % 相当于指令窗写一个表达式 exp(-B_str) Expression = exp(-[0.9501 0.6068 0.8913 0.4565;0.2311 0.486 0.7621 0.0185]) >> eval(Expression) % 把 exp(-B_str)送去执行

matlab第3章字符串、元胞与构架

matlab第3章字符串、元胞与构架

16
ห้องสมุดไป่ตู้
cell_name是待建元胞数组的名称,value 是元素的具体内容。cell_name(i, j)和cell_ name {i, j}的意义是不同的cell_name(i, j)表示 元胞数组的第i行第j列个元素,被称为“元胞外 标志(cell indexing)”;cell_name{i, j}表示元胞 数组第i行第j列个元素中的内容,被称为“元胞 内 编址(content addressing)”。 下面说明如何创建一个如图3.2所示的元 胞数组,设student为待建元胞数组的名称,则 下面两组命令都可以完成任务。
第3章 字符串、元胞与构架 数组
1
本章学习目标
掌握字符串数组、复杂字符串数组的创建
及串转换函数与串操作函数 掌握元胞数组的创建,元胞数组的显示、 寻访、扩充、收缩和重组方法及元胞数组 相关函数 掌握构架数组的创建、构架数组的相关函 数及构架数组的操作 掌握几种数组的转换
2
主要内容


8
有时需要由小串构成长串,这时可以把小串放在 [ ]中,例如 >> S_S1=[S,‘ ’,S1] %这里‘ ’是一个空格串,单引
号对中包含一个空格符,空 串‘’不包含空格符,它们两个 在MATLAB中是不同的
S_S1 = Hello World 芝麻开门
9
2. 复杂字符串数组的创建
①直接创建多行字符串数组
13
④利用元胞数组创建复杂字符串 前面已经介绍了3种常用的创建复杂字符 串数组的方法,还可以利用元胞数组创建复 杂字符串,这部分内容放在3.4节介绍。 注意:MATLAB语言中没有强调字符标量 和字符串的区别,例如 >> b=‘A’ %给变量b赋字符标量A,相当 于创建一个1×1的字符串

字符串、胞元构架数组

字符串、胞元构架数组
0.6 0.5 maximum t=0.33 y=0.4321 0.4 0.3 y
y=exp(-2t)*sin(3t)
0.2
0.1
0
-0.1
0
1
2
3
4
5 t
6
7
8
9
10
胞元数组 胞元数组的构成?
胞元和胞元内容两部分。 该数组的基本组成部分是胞元(cell),每 个胞元本身在数组中是平等的,它们只能以下 标来区分。同一个胞元数组中不同的胞元可以 存放不同类型和不同大小的数据,如任意维数 组、字符串数组、符号对象等。
构架数组
【例6】通过温室数据(包括温室名、容积、温度、湿度等)演示:构架数 数 组的创建和显示。
(1)直接对域赋值产生“单构架”,1*1构架数组 )直接对域赋值产生“单构架” 构架数组 ► clear ► =‘一号房 一号房’; %G构架的 构架的name域存放字符串 一号房 构架的 域存放字符串 ► G.volume=2000; %G构架的 构架的volume域存放数值 构架的 域存放数值 ► G.temperature=[31.2,30.4,31.6,28.7]; %G构架的 构架的temperature域存放一维数值数组 构架的 域存放一维数值数组 G.humidity=[62.1,59.5,57.7,61.5;63,60,58.1,62.3]; (2)向第二个构架的域赋值,形成构架数组, )向第二个构架的域赋值,形成构架数组, ► G(2).name='二号房 二号房'; 二号房 ► G(2).volume=2400;
胞元数组 胞元和胞元内容是两个不同的概念?
A(2,3)指A胞元数组中的第2行第3列的胞元。 ► A{2,3}指A胞元数组中第2行第3列中胞元中存 放的内容。

实验三 MATLAB字符串、元胞和构架数组

实验三  MATLAB字符串、元胞和构架数组

实验三字符串、元胞和构架数组MATLAB 6.x版的内建数据类型(Built-in data type)就有5种以上,此外还有许多其他专门设计的类(Class),如符号类、内联函数类、控制工具包中的线性时不变模型类、神经网络类等。

就程序设计而言,MATLAB 6.x版采用了面向对象编程技术。

数据和编程的改变使用户能更简捷而自然地解决复杂的计算问题(如符号计算问题、多变量控制系统问题、神经网络问题)。

本章内容根据MATLAB6.5编写,但绝大部分内容适用于其他MATLAB6.x版本。

第二章介绍了数值数组(Numeric Array),这是读者比较熟悉的数据类型。

本章将集中讲述另外三类数据:字符串数组(Character String Array)、元胞数组(Cell array)和构架数组(Structure array)。

它们之间的基本差别见表3-1。

3.1字符串数组3.1.1字符串入门【例3.1.1-1】先请读者实际操作本例,以体会数值量与字符串的区别。

cleara=12345.6789class(a)a_s=size(a)b='S'class(b)b_s=size(b)whos3.1.2串数组的属性和标识【例3.1.2-1】本例演示:串的基本属性、标识和简单操作。

(1)a='This is an example.'(2)size(a)(3)a14=a(1:4)ra=a(end:-1:1)(4)ascii_a=double(a)char(ascii_a)(5)w=find(a>='a'&a<='z');ascii_a(w)=ascii_a(w)-32;char(ascii_a)(6)A='这是一个算例。

';A_s=size(A)A56=A([5 6])ASCII_A=double(A)char(ASCII_A)(7)b='Example ''3.1.2-1'''(8)ab=[a(1:7),' ',b,' .']3.1.3复杂串数组的创建3.1.3.1多行串数组的直接创建【例3.1.3.1-1】多行串数组的直接输入示例。

第6章 元胞和构架

第6章  元胞和构架

技术凝聚实力 专业创新出版
6.2.1 创建构架数组


与元胞不同的是,构架采用点“.”来访问数据,有C语言基础的读 者可能更好理解,这是因为构架数组具有面向对象的数据结构功能。 创建一个构架,可以采用点号为构架的各个域赋初值,比如用户需 要建立一个构架,来存储有关家庭的信息,这里给构架命名为 family,在命令窗口输入代码及执行结果如下。 >> family.number=3; >> family.people='father,mother&me'; >> ='光荣之家' family = number: 3 people: 'father,mother&me' name: '光荣之家'
技术凝聚实力 专业创新出版
6.3 小结

本章主要介绍MATLAB7.0中的两种重要的数据类型:元胞和构架。这两种数据类型 可以实现在一个数组中存储不同类型的数据,读者需要掌握以下的内容。 元胞数组的创建 元胞数组的操作 嵌套元胞数组 字符串元胞数组 构架数组的闯将 构架数组和元胞数组的联系和区别

技术凝聚实力 专业创新出版
6.2 构架

构架数组(Structure Array) 和元胞数组有许 多类似之处,两者都可以在同一数组中存放不 同类型的数据,构架数组的组成单元是构架 (structure),它们没有从属关系,并以下标 来区分。在构架中存放数据之前,必须首先划 分“域(field)”,数据并不是直接存放在构 架中,而是存储在域里,构架可以存储任意类 型的数据,且不同构架数组中的同域可以存放 不同的内容。
技术凝聚实力 专业创新出版
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

19
%-12.5e
Marker (标记) (Required) Flag + 0 Modfier (修正符) (Optional) Field Width (字宽) (Optional) Description 左对齐,省缺时为右对齐 显示正负号,省缺时不显示+号 以0代替空格 Format Descriptor (格式描述符) (Required)
15
3.1.4
串转换函数
16
fprintf, sprintf, sscanf 指令讲解
当需要对输出结果的格式进行更多的控制时,可使用以上 三个函数。以上三个函数均为格式化输出函数,可对转换结果 的格式进行灵活方便的控制。其中fprintf,sprintf是将数字转换 为字符串,而 sscanf是将字符串转换为数字。 fprintf、sprintf以同样方式处理输入参量,但fprintf把输出送 到显示屏或文件中,而sprintf把输出返回到一个字符串中。
13
【例3.1-5】最常用的数组/字符串转换函数int2str , num2str , mat2str 示例。 (1) int2str
A=eye(2,4); A_str1=int2str(A)
(2) num2str
rand('state',0) B=rand(2,4); B3=num2str(B,3)
(3) mat2str
B_str=mat2str(B,4) Expression=['exp(-',B_str,')']; eval(Expression)
14
【例3.1-6】综合例题:在MATLAB计算生成的图形上标出图名和最 大值点坐标。
clear a=2; w=3; t=0:0.01:10; y=exp(-a*t).*sin(w*t); [y_max,i_max]=max(y);%i_max表明在 的哪个位置,y_max为具体的值 表明在y的哪个位置 表明在 的哪个位置, 为具体的值 t_text=['t=',num2str(t(i_max))]; y_text=['y=',num2str(y_max)]; max_text=char('maximum',t_text,y_text); tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)']; plot(t,zeros(size(t)),'k') hold on plot(t,y,'') plot(t(i_max),y_max,'r.','MarkerSize',20) text(t(i_max)+0.3,y_max+0.05,max_text) title(tit),xlabel('t'),ylabel('y'),hold off
17
【例3.1-7】fprintf, sprintf, sscanf的用法示例。
rand('state',0); a=rand(2,2); s1=num2str(a) s_s=sprintf('%.10e\n',a) fprintf('%.5g\\',a)
s_sscan=sscanf(s_s,'%f',[3,2])
实际转换大小写的指令是upper和lower 字母的大小顺序: A B C … Z a b c … z
5
(6)中文字符串数组 ) A='这是一个算例。'; 这是一个算例。 这是一个算例 A_s=size(A) A56=A([5 6]) ASCII_A=double(A) char(ASCII_A)
12
(保留7位有效数字) (小数点后面保留5位)
Description str = mat2str(A) converts matrix A into a string, suitable for input to the eval function, using full precision. str = mat2str(A,n) converts matrix A using n digits of precision. (n为总的精度)Limitations The mat2str function is intended to operate on scalar, vector, or rectangular array inputs only. An error will result if A is a multidimensional array.最多为二维的矩阵才可以。 Examples Consider the matrix: A= 1 3 2 4 The statement : b = mat2str(A) produces: b = [1 2;3 4] where b is a string of 9 characters, including the square brackets, spaces, and a semicolon. eval(mat2str(A)) reproduces A.
18
Common Special Characters in Fomat Strings Format String %d %e %f %g Result Display value as an integer整数格式 Display value in exponential format指数格式 Display value in floating point format.浮点格式 Display value in either floating point or exponential format,whichever is shorter. \n Skip to a new line
2
3.1.1
字符串入门
字符串与数值是两种不同的数据类型,它们的创建方式 也就不同。数值变量是通过在指令窗中数字赋值创建的。而 字符变量的方式是:把待建的字符串放在“单引号”对中再 按回车键。 创建方式: 把一系列字符放在一对单引号里就定义了一个字符串。 Example: A='hello' whos class(A) ischar(A)
观察内存变量 判断A的类型 检测是否为字符串
3
3.1.2
串数组的属性和标识
【例3.1-2】本例演示:串的基本属性、标识和简单操作。
(1)创建串数组 ) a='This is an example.' a = This is an example. (2)串数组 的大小 )串数组a的大小 size(a) ans = 1 19 把空格也作为一个字符!! (3)串数组的元素标识 ) a14=a(1:4) ra=a(end:-1:1) a14 = This ra = .elpmaxe na si sihT %提出一个子字符串 提出一个子字符串 %字符串的倒排 字符串的倒排
%创建中文字符串 创建中文字符串 %串数组的大小 串数组的大小 %取串的子数组 取串的子数组 %获取 获取ASCII码 获取 码 %把ASCII码翻译成字符 把 码翻译成字符
(7)创建带单引号的字符串,双引号作为一个单引号。 )创建带单引号的字符串,双引号作为一个单引号。 b='Example ''4.1.2-1''' b = Example '4.1.2-1'
11
num2str num2str 把非整数数组转换为串数组(常用于图形中,数据 点的标识)。此函数可对输出字符串的格式进行控制。 如: p=num2str(pi,7) p=num2str(pi,’%10.5e) mat2str mat2str Convert a matrix into a string Syntax str = mat2str(A) str = mat2str(A,n)
策三章
字符串数组、 字符串数组、元胞数组和 构架数组
本章介绍MATLAB另外三类数据类型: Character String Array Cell array Structure array
1
3.1
字符串数组
Character String Array MATLAB真正强有力的地方在于它的数值处理能力。然而 也经常需要对文本进行操作,例如把标号和标题放在图上。在 MATLAB里,文本就是字符串。 字符串对MATLAB的符号计算、程序设计、数据可视化、 GUI制作等都是不可缺少的知识基础和工具。尤其是图形用户 界面设计中涉及到许多图形对象的属性及其取值,都需要通过 字符数组的处理来完成。 本节内容包括如何建立字符串数组,并讨论字符串的查找、 替换和如何作字符串与数值间的转换等。
10
in2str int2str Integer to string conversion Syntax str = int2str(N) Class(str) Description str = int2str(N) converts an integer to a string with integer format. The input N can be a single integer or a vector or matrix of integers. Noninteger inputs are rounded before conversion.
4
(4)串数组的 )串数组的ASCII码 码 ascii_a=double(a) char(ascii_a)
%产生 产生ASCII码 产生 码 %把ASCII码变回字符串 把 码变回字符串
MATLAB内部用与每个字符相应的数值(ASCII码)来代表 字符。可以用函数double和char来实现字符和相应的ASCII码数 值之间的转换。
相关文档
最新文档