admin 管理员组文章数量: 887021
2024年2月19日发(作者:ac output是什么意思)
第三章(教材附录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)
[说明]
中文字符能被char和double正确转换。
(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-进制串转换为十进制整数
bin2dec
char
换成字符串
dec2base
十进制整数转换为X进制串
dec2bin
dec2hex
double
fprintf
十进制整数转换为二进制串
十进制整数转换为16进制串
把任何类数据转还成双精度数值
把格式化数据写到文件或屏幕
二进制串转换为十进制整数
把ASCII码及其他非数值类数据转hex2num
16-进制串转换为浮点数
int2str
mat2str
的格式
num2str
setstr
sprintf
sscanf
str2num
把数值转换为串
把ASCII码翻译成串
以控制格式把数值转换成串
在格式控制下把串转换为数
把串转换为数值
把整数转换为串
把数值矩阵转换为eval可调用
3.3 串操作函数
指令
blanks(n)
char(s1,s2,…)
deblank(s)
eval(s)
含义
创建n个空格串
指令
lower(s)
含义
把s里的英文字母全部小写
把串s1,s2等逐个写成行,形成多行数组,并删除全空行
把串s1,s2等连接成长串
若串s1,s2相同,则判“真”给出逻辑1
字符串的对齐方式:或右对齐,或左对齐,或对中
逐行搜索串s2,给出以s1开头的那些行的行号
把串s1,s2等逐个写成行,str2mat(s1,s2,…)
形成多行数组
删去串尾部的空格符
strcat(s1,s2,…)
把串s当作MATLAB指令strcmp(s)
运行
把串s1当作MATLAB指令运行。若s1 运行发生错误,strjust(s)
则运行sc
x,
对输入宗量x,y等计算函数strmatch(s1,s2)
f
eval(s1,sc)
feval(f,
y,....)
findstr(s1,s2)
ischar(s)
isletter(s)
isspace(s)
lasterr
在较长串中,找到短串的起若串s1,s2的前n个字符相strncmp(s1,s2,s3)
始字符的下标 同,则判“真”给出逻辑1
s是字符串,则判“真”给strrep(s1,s2,s3)
出逻辑1
以逻辑1指示s里文字符的strtok(s)
位置
以逻辑1指示s里空格符的strvcat(s1,s2,…)
位置
MATLAB发出的最新错误upper(s)
信息
串s1中的所以出现s2的地方替换为s3
找出第一个间隔符(空格、制表位、回车符)前的内容
把串s1,s2等逐个写成行,形成多行数组
使s里的英文字母全部大写
版权声明:本文标题:字符串数组2012 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708343669h520658.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论