matlab中symvar,MATLAB - Strings

MATLAB - Strings

在MATLAB中创建字符串非常简单。 事实上,我们已多次使用它。 例如,在命令提示符下键入以下内容 -my_string = 'IOWIKI'

MATLAB将执行上述语句并返回以下结果 -my_string = IOWIKI

MATLAB将所有变量视为数组,字符串被视为字符数组。 让我们使用whos命令检查上面创建的变量 -whos

MATLAB将执行上述语句并返回以下结果 -Name Size Bytes Class Attributes

my_string 1x16 32 char

有趣的是,您可以使用数字转换函数(如uint8或uint16将字符串中的字符转换为其数字代码。 char函数将整数向量转换回字符 -

例子 (Example)

创建一个脚本文件并在其中键入以下代码 -my_string = 'Tutorial''s Point';

str_ascii = uint8(my_string) % 8-bit ascii values

str_back_to_char= char(str_ascii)

str_16bit = uint16(my_string) % 16-bit ascii values

str_back_to_char = char(str_16bit)

运行该文件时,它显示以下结果 -str_ascii =

84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116

str_back_to_char = Tutorial's Point

str_16bit =

84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116

str_back_to_char = Tutorial's Point

矩形字符数组

到目前为止我们讨论过的字符串是一维字符数组; 但是,我们需要存储更多。 我们需要在程序中存储更多的文本数据。 这是通过创建矩形字符数组来实现的。

创建矩形字符数组的最简单方法是通过根据需要垂直或水平连接两个或多个一维字符数组。

您可以通过以下任一方式垂直组合字符串 -使用MATLAB连接运算符[]并用分号(;)分隔每一行。 请注意,在此方法中,每行必须包含相同数量的字符。 对于具有不同长度的字符串,您应根据需要填充空格字符。

使用char函数。 如果字符串具有不同的长度,则char将较短的字符串填充为尾随空白,以便每行具有相同的字符数。

例子 (Example)

创建一个脚本文件并在其中键入以下代码 -doc_profile = ['Zara Ali '; ...

'Sr. Surgeon '; ...

'R N Tagore Cardiology Research Center']

doc_profile = char('Zara Ali', 'Sr. Surgeon', ...

'RN Tagore Cardiology Research Center')

运行该文件时,它显示以下结果 -doc_profile =

Zara Ali

Sr. Surgeon

R N Tagore Cardiology Research Center

doc_profile =

Zara Ali

Sr. Surgeon

RN Tagore Cardiology Research Center

您可以通过以下任一方式水平组合字符串 -使用MATLAB连接运算符[]并用逗号或空格分隔输入字符串。 此方法保留输入数组中的任何尾随空格。

使用字符串连接函数strcat 。 此方法删除输入中的尾随空格。

例子 (Example)

创建一个脚本文件并在其中键入以下代码 -name = 'Zara Ali ';

position = 'Sr. Surgeon ';

worksAt = 'R N Tagore Cardiology Research Center';

profile = [name ', ' position ', ' worksAt]

profile = strcat(name, ', ', position, ', ', worksAt)

运行该文件时,它显示以下结果 -profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center

profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center

将字符串组合成单元阵列

从我们之前的讨论中可以清楚地看出,组合不同长度的字符串可能会很麻烦,因为数组中的所有字符串都必须具有相同的长度。 我们在字符串的末尾使用了空格来均衡它们的长度。

但是,组合字符串的更有效方法是将结果数组转换为单元数组。

MATLAB单元阵列可以在阵列中保存不同大小和类型的数据。 单元阵列提供了一种更灵活的方式来存储不同长度的字符串。

cellstr函数将字符数组转换为字符串的单元格数组。

例子 (Example)

创建一个脚本文件并在其中键入以下代码 -name = 'Zara Ali ';

position = 'Sr. Surgeon ';

worksAt = 'R N Tagore Cardiology Research Center';

profile = char(name, position, worksAt);

profile = cellstr(profile);

disp(profile)

运行该文件时,它显示以下结果 -{

[1,1] = Zara Ali

[2,1] = Sr. Surgeon

[3,1] = R N Tagore Cardiology Research Center

}

MATLAB中的字符串函数

MATLAB提供了许多字符串函数,用于创建,组合,解析,比较和操作字符串。

下表提供了MATLAB中字符串函数的简要说明 -功能目的

用于在字符数组中存储文本,组合字符数组等的函数。

blanks创建空白字符串

cellstr从字符数组创建字符串的单元格数组

char转换为字符数组(字符串)

iscellstr确定输入是否是字符串的单元格数组

ischar确定项是否为字符数组

sprintf格式化数据到字符串

strcat水平连接字符串

strjoin将单元格数组中的字符串加入单个字符串

用于识别字符串部分,查找和替换子字符串的函数

ischar确定项是否为字符数组

isletter数组元素是字母

isspace数组元素是空格字符

isstrprop确定字符串是否为指定的类别

sscanf从字符串中读取格式化数据

strfind找到另一个字符串

strrep查找并替换子字符串

strsplit在指定的分隔符处拆分字符串

strtok字符串的选定部分

validatestring检查文本字符串的有效性

symvar确定表达式中的符号变量

regexp匹配正则表达式(区分大小写)

regexpi匹配正则表达式(不区分大小写)

regexprep使用正则表达式替换字符串

regexptranslate将字符串转换为正则表达式

字符串比较的函数

strcmp比较字符串(区分大小写)

strcmpi比较字符串(不区分大小写)

strncmp比较字符串的前n个字符(区分大小写)

strncmpi比较字符串的前n个字符(不区分大小写)

用于将字符串更改为大写或小写,创建或删除空格的函数

deblank从字符串末尾剥去尾随空格

strtrim从字符串中删除前导和尾随空格

lower将字符串转换为小写

upper将字符串转换为大写

strjust对齐字符数组

例子 (Examples)

以下示例说明了上述一些字符串函数 -

格式化字符串

创建一个脚本文件并在其中键入以下代码 -A = pi*1000*ones(1,5);

sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)

运行该文件时,它显示以下结果 -ans = 3141.592654

3141.59

+3141.59

3141.59

000003141.59

加入字符串

创建一个脚本文件并在其中键入以下代码 -%cell array of strings

str_array = {'red','blue','green', 'yellow', 'orange'};

% Join strings in cell array into single string

str1 = strjoin(str_array, "-")

str2 = strjoin(str_array, ",")

运行该文件时,它显示以下结果 -str1 = red-blue-green-yellow-orange

str2 = red,blue,green,yellow,orange

查找和替换字符串

创建一个脚本文件并在其中键入以下代码 -students = {'Zara Ali', 'Neha Bhatnagar', ...

'Monica Malik', 'Madhu Gautam', ...

'Madhu Sharma', 'Bhawna Sharma',...

'Nuha Ali', 'Reva Dutta', ...

'Sunaina Ali', 'Sofia Kabir'};

% The strrep function searches and replaces sub-string.

new_student = strrep(students(8), 'Reva', 'Poulomi')

% Display first names

first_names = strtok(students)

运行该文件时,它显示以下结果 -new_student =

{

[1,1] = Poulomi Dutta

}

first_names =

{

[1,1] = Zara

[1,2] = Neha

[1,3] = Monica

[1,4] = Madhu

[1,5] = Madhu

[1,6] = Bhawna

[1,7] = Nuha

[1,8] = Reva

[1,9] = Sunaina

[1,10] = Sofia

}

比较字符串

创建一个脚本文件并在其中键入以下代码 -str1 = 'This is test'

str2 = 'This is text'

if (strcmp(str1, str2))

sprintf('%s and %s are equal', str1, str2)

else

sprintf('%s and %s are not equal', str1, str2)

end

运行该文件时,它显示以下结果 -str1 = This is test

str2 = This is text

ans = This is test and This is text are not equal

MATLAB - Numbers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值