第三章(教材附录A 字符串数组
    字符串数组(以下简称串数组),在MATLAB中的重要性较小,但不可缺少。假如没有串数组及相应的操作,那么数据可视化、图形用户界面GUI的制作将会遇到困难。
3.1字符串的创建
    字符串与数值是两种不同的数据类(Class),它们的创建方式不同。数值变量是通过在指令窗中数字赋值创建的。
字符变量的创建方式是:
在指令窗中,先把待建的字符放在“单引号对”中,再按[Enter]键。注意:“单引号对”必须在英文状态下输入!
    数值标量在内存中存放时需要8个字节(Byte),而一个字符的存放只需2个字节。
3.1字符串的属性与标识
【例3.1-2本例演示:串的基本属性、标识和简单操作。
1)创建串数组
a='This is an example.'
2)串数组的大小
size(a)
3)串数组a的元素标识
a14=a(1:4)   
ra=a(end:-1:1)
4)串数组的ASCII
ascii_a=double(a)
char(ascii_a)   
[说明]
中文字符能被chardouble正确转换。
5)对字符串 ASCII码数组的操作
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)    %把ASCII 翻译成字符这是一个算例。
7)创建带单引号的字符串
当串中文字包含(英文)单引号时,每个单引号符用“连续的2个单引号符”表示。
b='Example ''3.1.2-1'''
8)由小串构成长串
ab=[a(1:7),'  ',b,' .'] 
复杂串数组的创建  
一、多行串数组的直接创建 
    在直接创建多行串数组时,关键是要保证同一串数组的各行字符数要相等,即保证各行等长。为此,有时不得不通过空格符的增减来调节各行的长度,使它们彼此相等。
二、利用串操作函数创建多行串数组
【例3.1-4演示:用专门函数char , str2mat , strvcat创建多行串数组。
S1=char('This string array','has two rows.')
S2=str2mat('','字符','串数组','4行组成')
S3=strvcat('','字符','串数组',' ','4行组成')
size(S3)
[说明]
这三个函数创建多串数组时,不必担心每行字符数是否相等。它们总会按最长行设置第二维的长度,其他行的尾部用空格填充。
3.2 串转换函数
指令
含义
指令
含义
abs
把串翻译成ASCII
hex2dec
16-进制串转换为十进制整数
base2dec
X-进制串转换为十进制整数
hex2num
16-进制串转换为浮点数
bin2dec
二进制串转换为十进制整数
int2str
把整数转换为串
char
ASCII码及其他非数值类数据转换成字符串
mat2str
数组转换成字符串把数值矩阵转换为eval可调用的格式
dec2base
十进制整数转换为X进制串
num2str
把数值转换为串
dec2bin
十进制整数转换为二进制串
setstr
ASCII码翻译成串
dec2hex
十进制整数转换为16进制串
sprintf
以控制格式把数值转换成串
double
把任何类数据转还成双精度数值
sscanf
在格式控制下把串转换为数
fprintf
把格式化数据写到文件或屏幕
str2num
把串转换为数值
指令
含义
指令
含义
blanks(n)
创建n个空格串
lower(s)
s里的英文字母全部小写
char(s1,s2,…)
把串s1,s2等逐个写成行,形成多行数组
str2mat(s1,s2,…)
把串s1,s2等逐个写成行,形成多行数组,并删除全空行
deblank(s)
删去串尾部的空格符
strcat(s1,s2,…)
把串s1,s2等连接成长串
eval(s)
把串s当作MATLAB指令运行
strcmp(s)
若串s1,s2相同,则判“真”给出逻辑1
eval(s1,sc)
把串s1当作MATLAB指令运行。若s1 运行发生错误,则运行sc
strjust(s)
字符串的对齐方式:或右对齐,或左对齐,或对中
feval(f, x, y,....)
对输入宗量x,y等计算函数f
strmatch(s1,s2)
逐行搜索串s2,给出以s1开头的那些行的行号
findstr(s1,s2)
在较长串中,到短串的起始字符的下标
strncmp(s1,s2,s3)
若串s1,s2的前n个字符相同,则判“真”给出逻辑1
ischar(s)
s是字符串,则判“真”给出逻辑1
strrep(s1,s2,s3)
s1中的所以出现s2的地方替换为s3
isletter(s)
以逻辑1指示s里文字符的位置
strtok(s)
出第一个间隔符(空格、制表位、回车符)前的内容
isspace(s)
以逻辑1指示s里空格符的位置
strvcat(s1,s2,…)
把串s1,s2等逐个写成行,形成多行数组
lasterr
MATLAB发出的最新错误信息
upper(s)
使s里的英文字母全部大写
3.3 串操作函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。