Matlab 字符数组和字符串数组

1,

字符数组对应向量、字符串数组对应标量;

字符数组使用单引号,’Apple’;字符串数组使用双引号,”Apple”;

字符数组转化为字符串数组,string(‘Apple’);

字符串数组转化为字符数组,char(“Apple”);

字符数组拼接 [‘Apple’,’Orange’];

字符串数组拼接 “Apple”+”Orange”;

字符数组访问其中一个元素,char_a(num),num代表元素索引;

字符串数组访问其中一个元素,string_a{1}(n),string_a{1}相当于把字符串数组string_a转化为字符数组;

isempty(”)结果为false,” 空字符没有元素;

isempty(“”)结果为true,””空字符串有元素;

2,

水平串联字符,使用strcat;可串联字符数组,也可串联字符串数组;对于字符数组,会删除尾随的空白字符;字符串数组尾随的空白字符在串联时不会删除;

sprintf,与fprintf的不同点,fprintf将字符串输出到窗口,sprintf将字符串输入到一个变量或作为函数的输入。

例如:name = input(‘输入你的名字’,’s’);

fprintf(sprintf(‘%s,输入你的ID,#: ‘,name)); %sprintf可将上边输入的变量组合进字符串,给到fprintf。

deblank,删除字符数组或字符串数组尾随的空格,并且只能删除尾随的空格;

strtrim,删除字符数组或字符串数组前边和尾随的空格,不能删除中间的空格;

strip,删除字符数组或字符串数组中指定的前边和尾随字符,不能删除中间的指定字符;

erase 擦除字符串中指定的字符,如指定的字符不存在,则返回原字符串;

upper 将字母转化为大写字母;

lower 将字母转化为小写字母;

strcmp 字符串比较,返回逻辑值,标量或向量;与 == 判断的区别,若是char型字符串,对比的字符串长度应相同;

strcmp 字符串比较,对大小写不敏感;

strncmp 对字符串前n个字符进行比较;

strfind 查找指定字符在字符串中的位置;

strrep 替换字符串中指定的字符;

count 计算字符串中指定字符的个数;

strtok 根据指定的字符截取字符串,默认按空格截取,会忽略字符串的前导空格;

例如:获取当前日期,将日期分解为 年/月/日

可以使用strtok 或 strfind函数:

date_str = date; %获取系统时间

[today_str,reset] = strtok(date_str,’-‘); %获取日的信息
reset = reset(2:end);
[month_str,reset] = strtok(reset,’-‘);  %获取月的信息
year_str = reset(2:end);   %获取年的信息

strings 创建string类型空矩阵,例如:strigs(3,4)创建一个3行4列的空字符串矩阵;

字符串的运算,包括标量和向量,向量和向量之间;

字符串操作及判断:

strjoin 将字符串数组或字符向量元胞数组连接,默认中间加空格,也可以指定连接字符,可以指定多个连接字符,指定的连接字符必须比元胞数组中的字符少一个,对于字符串矩阵,按顺序组合所有字符串;

strjoin([“abc”,”def”]) 结果为”abc def”,对于strjoin([‘abc’,’def’])会报错;

strjoin({‘one’,’two’,’three’}) 结果为 ‘one two three’,对于strjoin({“one”,”two”,”three”})会报错;

strsplit 将字符串按指定的分隔符分割为若干个字符串

strsplit(“a-b-c”,’-‘),结果为string类型字符串数组 “a”    “b”    “c”,strsplit(‘a-b-c’,’-‘),结果为元胞型char类型数组;

join 

join([‘abc’,’def’]) 结果为’abcdef’

join([“abc”,”def”]) 结果为”abc def”,中间增加空格;

join([“abc”,”def”,”ghj”],{‘-‘,’=’}) 结果为”abc-def=ghj”;

2016版本之后建议使用join;

isletter 判断是否为字母

isletter(‘abc1’),结果为向量,可同样用于string类型字符串;

isspace 判断是否为空格

isspace(‘abc ‘),结果为向量,可同样用于string类型字符串;

ischar判断是否为字符型

isstring 判断是否为字符串,isstring([‘123’,”234″])结果为逻辑真;

isStringScalar 判断是否为字符串标量,isStringScalar([‘123’,”234″])结果为逻辑假;

iscellstr 判断一个元胞数组中的元素是否都为char字符串类型;

contains 判断是否包含某个字符,空字符特殊,因为字符串的开头结尾及字符之间都有空字符;
startsWith 判断是否以某个字符开头,空字符特殊;
endsWith 判断是否以某个字符结尾,空字符特殊;

int2str 整数转化为字符串,如果是小数,按四舍五入处理为整数

int2str(2.6)结果为’3’;int2str([1,2])结果为’1  2’;

num2str 数字转化为字符,可以指定转化的格式

num2str(2.65643,’%06.2f’) 结果为’002.66’;num2str([1.2,3.4]) 结果为’1.2         3.4’;num2str([1.2,3.4],’%3.2f’) 结果为’1.203.40’;

str2double 字符转化为数字

str2double([‘123′,’123’]) 结果为123123;str2double([‘123.456′,’12.78’]) 结果为NaN;

str2num 字符转化为数字;

cellstr 元胞数组转化为字符串

cellstr({‘abc’,”wer”})  结果为{‘abc’}    {‘wer’},对于cellstr({‘1’,1}),不支持;

char 转化为字符

char(38) 结果为’&’;char([38,78]) 结果为’&N’;char(38,78) 结果为列向量

 ‘&’
 ‘N’

string 转化为字符串

string([123,345]) 结果为”123″    “345”

all 判断所有元素是否为真 

all([1,1,2]) 结果为逻辑真;

    原文作者:weixin_47207479
    原文地址: https://blog.csdn.net/weixin_47207479/article/details/122553780
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞