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]) 结果为逻辑真;

  • 2
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值