本文共 1740 字,大约阅读时间需要 5 分钟。
MATLAB® 2016b版本中引入了字符串数组,这是一种存储文本片段的结构,提供了多种操作函数,使其能够像处理其他数组一样进行索引、重构和串联等操作。字符串数组的每个元素都是一个1×n的字符序列,可以通过双引号创建字符串或使用string函数将字符向量转换为字符串数组。
创建字符串数组的方法有多种。一种常见方式是直接使用双引号:
str = "Hello, world"
如果需要将字符向量转换为字符串数组,可以使用string函数:
hr = 'Greetings, friend'str = string(hr)
此外,使用数组运算符[]可以创建包含多个字符串的字符串数组:
str = ["Mercury", "Gemini", "Apollo"; "Skylab", "Skylab B", "ISS"]
要检查字符串的长度,可以使用strlength函数:
L = strlength(str)
如果需要将字符向量元胞数组转换为字符串数组,也可以使用string函数:
C = {'Mercury', 'Venus', 'Earth'}str = string(C) 此外,string函数还支持将其他数据类型(如数值、日期时间)转换为字符串:
X = [5 10 20 3.1416]str = string(X)d = datetime('now')str = string(d) 除了手动输入字符串,MATLAB还提供了一些函数来读取外部文本文件。例如,可以使用readtable、textread、textscan和fscanf来从文件中读取数据并将其转换为字符串数组:
% 使用textread读取文本文件textdata = textread('filename.txt')% 使用readtable读取结构化数据data = readtable('filename.csv')% 使用textscan读取自定义格式的文本textdata = textscan('filename.txt', '%s') 字符串数组可以包含空字符串和缺失值。空字符串不包含任何字符,显示为""。缺失值类似于数值数组中的NaN,显示为<missing>:
str = stringsstr(1) = "";str(2) = "Gemini";str(3) = string(missing)
检查缺失值可以使用ismissing函数:
ismissing(str)
字符串数组支持数组运算,例如索引和重构。可以通过花括号直接访问字符:
str = ["Mercury", "Gemini", "Apollo"; "Skylab", "Skylab B", "ISS"];chr = str{2, 2}; % 获取第二行第二个元素 访问字符向量的前三个字符:
chr(1:3)
检查并修改字符串中的空格字符:
TF = isspace(str{2, 2});str{2, 2}(TF) = "-"; 将字符串数组串联起来,可以使用数组运算符[]:
str1 = ["Mercury", "Gemini", "Apollo"];str2 = ["Skylab", "Skylab B", "ISS"];str = [str1 str2];
使用plus运算符可以向字符串追加文本:
names = ["Mary", "John", "Elizabeth", "Paul", "Ann"];names = names + " Smith";
使用split、join和sort函数可以对字符串数组进行操作。例如,拆分字符串数组:
names = ["Mary Jones", "John Adams", "Elizabeth Young", "Paul Burns", "Ann Spencer"];split_names = split(names);
将拆分后的数组重新联接:
joined_names = join(split_names);
转载地址:http://qbcr.baihongyu.com/