加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MATLAB字符串

发布时间:2022-10-24 13:32:06 所属栏目:MsSql教程 来源:网络
导读: 在MATLAB中,字符串是作为字符数组来引入的;
一个字符串由多个字符组成,用单引号(’’)来界定;
字符串是按行向量进行存储的,每一字符(包括空格)是以其ASCII码的形式存放。
clear
str1=

在MATLAB中,字符串是作为字符数组来引入的;

一个字符串由多个字符组成,用单引号(’’)来界定;

字符串是按行向量进行存储的,每一字符(包括空格)是以其ASCII码的形式存放。

clear

str1='Hello'

str1 =

Hello

str2='I like ''MATLAB''' %重复单引号来输入含有单引号的字符串

str2 =

I like 'MATLAB'

str3='你好!' %支持中文

str3 =

你好!

1. 字符串占用的字节

whos

NameSizeBytes Class

str11x510 char array

str21x1530 char array

str31x36 char array

Grand total is 23 elements using 46 bytes

2. 字符串函数

§ length:用来计算字符串的长度(即组成字符的个数)。

§ double:用来查看字符串的ASCII码储存内容,包括空格(ASCII码为32)。

§ char:用来将ASCII码转换成字符串形式。

§ class或ischar:用来判断某一个变量是否为字符串。class函数返回char则表示为字符串,而ischar函数返回1表示为字符串。

§ strcmp(x,y):比较字符串x和y的内容是否相同。返回值如果为1则相同,为0则不同。

§ findstr(x,x1):寻找在某个长字符串x中的子字符串x1,返回其起始位置。

§ deblank(x ):删除字符串尾部的空格。

由于MATLAB将字符串以其相对应的ASCII码储存成一个行向量,因此如果字符串直接进行数值运算Mssq字符串函数,则其结果就变成一般数值向量的运算,而不再是字符串的运算。

length(str1) %字符串长度

ans =

5

x1=double(str1) %查看字符串的ASCII码

x1 =

72 101 108 108 111

x2=str1+1 %字符串的数值运算

x2 =

73 102 109 109 112

char(x1) %将ASCII码转换成字符串形式

ans =

Hello

char(x2)

ans =

Ifmmp

class(str1) %判断变量类型

ans =

char

class(x1)

ans =

double

ischar(str1)

ans =

1

3. 使用一个变量来储存多个字符串

(1) 多个字符串组成一个新的行向量

将多个字符串变量直接用“,”连接,构成一个行向量,就可以得到一个新字符串变量。

clear

str1='Hello';

str2='I like ''MATLAB''';

str3='你好!'

str4=[str1,'! ',str2] %多个字符串并排成一个行向量

str4 =

Hello! I like 'MATLAB'

(2) 使用二维字符数组

将每个字符串放在一行,多个字符串可以构成一个二维字符数组,但必须先在短字符串结尾补上空格符,以确保每个字符串(即每一行)的长度一样。否则MATLAB会提示出错:

str5=[str1;str3]

??? Error using ==> vertcat

All rows in the bracketed expression must have the same

number of columns.

str5=[str1;str3,' '] %将str3添加两个空格

str5 =

Hello

你好!

(3) 使用str2mat、strvcat和char函数

使用专门的str2mat、strvcat和char函数可以构造出字符串矩阵,而不必考虑每行的字符数是否相等,总是按最长的设置,不足的末尾用空格补齐。

str6=str2mat(str1,str2,str3)

str6 =

Hello

I like 'MATLAB'

你好!

str7=char(str1,str2,str3)

str7 =

Hello

I like 'MATLAB'

你好!

str8=strvcat(str1,str2)

str8 =

Hello

I like 'MATLAB'

whos

NameSizeBytes Class

str11x510 char array

str21x1530 char array

str31x36 char array

str41x2244 char array

str52x520 char array

str63x1590 char array

str73x1590 char array

str82x1560 char array

Grand total is 186 elements using 350 bytes

5. 执行字符串

如果需要直接“执行”某一字符串,可以使用eval命令,效果就如同直接在MATLAB命令窗口内输入此命令。

str9='a=2*5'

str9 =

a=2*5

eval(str9) %执行字符串

a =

10

6. 显示字符串

字符串可以直接使用disp命令显示出来,即使后面加分号(;)也显示。

disp('请输入2*2的矩阵a')

请输入2*2的矩阵a

disp(str1)

Hello

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!