目录

创建字符串数组

根据变量创建字符串数组

创建空字符串和缺失字符串

访问字符串数组的元素

访问字符串中的字符

将字符串串联到字符串数组中

向字符串追加文本

拆分、联接和排序字符串数组


创建字符串数组

R2016b 中引入了字符串数组。字符串数组可存储文本片段,并提供一组用于将文本按数据进行处理的函数。可以对字符串数组进行索引、重构和进行串联,就像处理任何其他类型的数组一样。此外,还可以访问字符串中的字符,并使用 plus 运算符向字符串追加文本。要重新排列字符串数组中的字符串,请使用 splitjoin 和 sort 等函数。

根据变量创建字符串数组

MATLAB® 提供字符串数组来存储文本片段。字符串数组的每个元素都包含一个 1×n 字符序列。从 R2017a 开始,可以使用双引号创建字符串。

str = "Hello, world"str =
"Hello, world"

作为备选方法,可以使用 string 函数将字符向量转换为字符串。chr 为一个 1×17 字符向量。str 为一个与该字符向量具有相同文本的 1×1 字符串。

hr = 'Greetings, friend'chr =
'Greetings, friend'str = string(chr)str =
"Greetings, friend"

使用 [] 运算符创建一个包含多个字符串的字符串数组。str 是一个 2×3 字符串数组,其中包含六个字符串。

str = ["Mercury","Gemini","Apollo";"Skylab","Skylab B","ISS"]str = 2x3 string array"Mercury"    "Gemini"      "Apollo""Skylab"     "Skylab B"    "ISS"   

通过 strlength 函数计算 str 中的每个字符串的长度。使用 strlength 而非 length 来确定字符串中的字符数量。

L = strlength(str)L = 2×37     6     66     8     3

作为备选方法,可以使用 string 函数将字符向量元胞数组转换为字符串数组。MATLAB 使用双引号显示字符串数组中的字符串,使用单引号显示元胞数组中的字符向量。

C = {'Mercury','Venus','Earth'}C = 1x3 cell array{'Mercury'}    {'Venus'}    {'Earth'}str = string(C)str = 1x3 string array"Mercury"    "Venus"    "Earth"

除了字符向量,还可以使用 string 函数将数值、日期时间、持续时间和分类值转换为字符串将数值数组转换为字符串数组。

X = [5 10 20 3.1416];
string(X)ans = 1x4 string array"5"    "10"    "20"    "3.1416"

将日期时间值转换为字符串。

d = datetime('now');
string(d)ans =
"30-Jul-2019 17:12:01"

        此外,也可以使用 readtable、textread、textscan 和 fscanf 函数将文件中的文本读入字符串数组。

创建空字符串和缺失字符串

字符串数组可以包含空值和缺失值。空字符串不包含字符。当显示空字符串时,结果为一对其间不包含任何内容的双引号 ("")。缺失字符串相当于数值数组的 NaN。它指示字符串数组包含缺失值的位置。当显示缺失字符串时,结果为 <missing>,且不带任何引号。

使用 strings 函数创建一个空字符串数组。在不带任何参数的情况下调用 strings 时,将会返回一个空字符串。请注意,str 的大小是 1×1,而不是 0×0。但是,str 不包含字符。

str = stringsstr =
""

使用单引号创建一个空字符向量。请注意,chr 的大小是 0×0。

chr = ''chr =0x0 empty char array

创建一个所有元素都是空字符串的字符串数组。

str = strings(2,3)str = 2x3 string array""    ""    """"    ""    ""

可以使用 strings 函数预分配一个字符串数组。

要创建缺失字符串,请使用 string 函数转换缺失值。缺失字符串显示为 <missing>

str = string(missing)str =
<missing>

可以创建同时包含空字符串和缺失字符串的字符串数组。使用 ismissing 函数确定哪些元素为包含缺失值的字符串。请注意,空字符串不是缺失字符串。

str(1) = "";
str(2) = "Gemini";
str(3) = string(missing)str = 1x3 string array""    "Gemini"    <missing>ismissing(str)ans = 1x3 logical array0   0   1

将一个缺失字符串与另一个字符串进行比较。结果始终为 0 (false),即使将一个缺失字符串与另一个缺失字符串进行比较也是如此。

str = string(missing);
str == "Gemini"ans = logical0str == string(missing)ans = logical0

访问字符串数组的元素

字符串数组支持数组运算,例如进行索引和重构。使用数组索引访问 str 的第一行以及所有列。

str = ["Mercury","Gemini","Apollo";"Skylab","Skylab B","ISS"];
str(1,:)ans = 1x3 string array"Mercury"    "Gemini"    "Apollo"

访问 str 的第二行中的第二个元素。

str(2,2)ans =
"Skylab B"

在 str 的边界之外分配一个新字符串。MATLAB 将扩展该数组并使用缺失值填充未分配的元素。

str(3,4) = "Mir"str = 3x4 string array"Mercury"    "Gemini"      "Apollo"     <missing>"Skylab"     "Skylab B"    "ISS"        <missing><missing>    <missing>     <missing>    "Mir"    

访问字符串中的字符

可以使用花括号 {} 对字符串数组进行索引以直接访问字符。当需要访问和修改字符串元素中的字符时,请使用花括号。通过花括号进行索引为可处理字符串数组或字符向量元胞数组的代码提供了兼容性。但是只要有可能,请尽量使用字符串函数来处理字符串中的字符。使用花括号访问第二行中的第二个元素。chr 是一个字符向量,而不是字符串。

str = ["Mercury","Gemini","Apollo";"Skylab","Skylab B","ISS"];
chr = str{2,2}chr =
'Skylab B'

访问该字符向量并返回前三个字符。

str{2,2}(1:3)ans =
'Sky'

查找字符串中的空格字符,并将这些字符替换为短划线。使用 isspace 函数检查字符串中的单个字符。isspace 会返回一个逻辑向量,只要存在一个空格字符,该向量即包含一个 true 值。最后,显示修改后的字符串元素 str(2,2)

TF = isspace(str{2,2})TF = 1x8 logical array0   0   0   0   0   0   1   0
str{2,2}(TF) = "-";
str(2,2)ans =
"Skylab-B"

        请注意,在该示例中,也可以使用 replace 函数来替换空格,而无需借助于花括号索引。

replace(str(2,2)," ","-")ans =
"Skylab-B"

将字符串串联到字符串数组中

将字符串串联到字符串数组中,就像您串联任何其他类型的数组一样。使用方括号 [] 串联两个字符串数组。

str1 = ["Mercury","Gemini","Apollo"];
str2 = ["Skylab","Skylab B","ISS"];
str = [str1 str2]str = 1x6 string array"Mercury"    "Gemini"    "Apollo"    "Skylab"    "Skylab B"    "ISS"

转置 str1 和 str2。将它们进行串联,然后将列标题垂直串联到字符串数组上。当将字符向量串联到字符串数组中时,字符向量会自动转换为字符串。

str1 = str1';
str2 = str2';
str = [str1 str2];
str = [["Mission:","Station:"] ; str]str = 4x2 string array"Mission:"    "Station:""Mercury"     "Skylab"  "Gemini"      "Skylab B""Apollo"      "ISS"     

向字符串追加文本

要向字符串追加文本,请使用 plus 运算符 +plus 运算符可向字符串追加文本,但不会更改字符串数组的大小。在名字数组中追加一个姓氏。如果将某个字符向量追加到字符串,则该字符向量将自动转换为字符串。

names = ["Mary";"John";"Elizabeth";"Paul";"Ann"];
names = names + ' Smith'names = 5x1 string array"Mary Smith""John Smith""Elizabeth Smith""Paul Smith""Ann Smith"

追加不同的姓氏。可以将文本从一个字符串数组或字符向量元胞数组追加到另一个字符串数组。当添加非标量数组时,这些数组的大小必须相同。

names = ["Mary";"John";"Elizabeth";"Paul";"Ann"];
lastnames = ["Jones";"Adams";"Young";"Burns";"Spencer"];
names = names + " " + lastnamesnames = 5x1 string array"Mary Jones""John Adams""Elizabeth Young""Paul Burns""Ann Spencer"

追加缺失字符串。当使用加号运算符追加缺失字符串时,输出为一个缺失字符串。

str1 = "Jones";
str2 = string(missing);
str1 + str2ans =
<missing>

拆分、联接和排序字符串数组

MATLAB 提供了一组丰富的函数来处理字符串数组。例如,可以使用 splitjoin 和 sort 函数重新排列字符串数组 names,以使名字按姓氏的字母顺序排列。按空格字符拆分 names。拆分会将 names 从 5×1 字符串数组更改为 5×2 数组。

names = ["Mary Jones";"John Adams";"Elizabeth Young";"Paul Burns";"Ann Spencer"];
names = split(names)names = 5x2 string array"Mary"         "Jones"  "John"         "Adams"  "Elizabeth"    "Young"  "Paul"         "Burns"  "Ann"          "Spencer"

 names 的列交换位置,使姓在第一列。在每个姓后面添加一个逗号。

names = [names(:,2) names(:,1)];
names(:,1) = names(:,1) + ','names = 5x2 string array"Jones,"      "Mary"     "Adams,"      "John"     "Young,"      "Elizabeth""Burns,"      "Paul"     "Spencer,"    "Ann"

将姓和名联接起来。join 函数在它联接的字符串之间放置一个空格字符。进行联接之后,names 为一个 5×1 字符串数组。

names = join(names)names = 5x1 string array"Jones, Mary""Adams, John""Young, Elizabeth""Burns, Paul""Spencer, Ann"

对 names 的元素进行排序,使它们按字母顺序排列。

names = sort(names)names = 5x1 string array"Adams, John""Burns, Paul""Jones, Mary""Spencer, Ann""Young, Elizabeth"

Matlab中创建字符串数组相关推荐

  1. Matlab:创建字符串数组

    Matlab:创建字符串数组 根据变量创建字符串数组 创建空字符串和缺失字符串 访问字符串数组的元素 访问字符串中的字符 使用方括号 [] 串联两个字符串数组. 向字符串追加文本 拆分.联接和排序字符 ...

  2. Matlab中分析字符串数组的文本数据

    目录 分析字符串数组的文本数据 将文本文件导入字符串数组 清理字符串数组 根据频率对单词进行排序 绘制单词频率图 用表收集基本统计信息 分析字符串数组的文本数据 下面示例演示如何以字符串数组形式存储文 ...

  3. matlab中创建一维数组变量的方法

    行变量的创建 方法一 使用方括号"[]"操作符: 例1:创建数组(行向量)a=[1 3 pi 3+5i] >>a=[1 3 pi 3+5i] %or a=[1,3,pi ...

  4. scala 字符串数组_Scala程序创建字符串数组

    scala 字符串数组 Scala array is a collection of elements of the same data type. The data type can be stri ...

  5. matlab 对话框保持,如何在matlab中创建输入对话框?(How to create Input dialog box in matlab?)...

    如何在matlab中创建输入对话框?(How to create Input dialog box in matlab?) 我想在matlab中创建输入对话框. 我在MATLAB中执行简单的加法运算. ...

  6. Matlab中创建、串联和扩展矩阵

    目录 构建数据矩阵 专用矩阵函数 串联矩阵 生成数值序列 扩展矩阵 空数组 最基本的 MATLAB® 数据结构体是矩阵.矩阵是按行和列排列的数据元素的二维矩形数组.元素可以是数字.逻辑值(true 或 ...

  7. Matlab:创建分类数组

    Matlab:创建分类数组 基于字符串数组创建分类数组 添加新元素和缺失的元素 基于字符串数组创建有序分类数组 基于分 bin 数值数据创建有序分类数组 此示例说明如何创建分类数组.categoric ...

  8. matlab时间字符串相减,Matlab中时间字符串处理总结

    Matlab的日期与时间处理 Matlab用三种格式来表示日期与时间 (1)双精度型日期数字:一个日期型数字代表从公元0年到某一日期的的天数,例如,2008年8月26日夜时0点钟被表示为733646, ...

  9. Matlab中的向量和数组(超详细)

    Matlab中的向量和数组(超详细) 文章目录 Matlab中的向量和数组(超详细) Matlab中的向量 介绍 创建向量 向量的大小 索引向量 数值索引 逻辑索引 缩短向量 向量运算 算术运算 逻辑 ...

最新文章

  1. 【CVPR2020 Oral】只需一行代码就可提升迁移性能
  2. 图解matlab基本操作
  3. 解析html语言的软件,小程序解析html标签 div-Go语言中文社区
  4. 退役-兵巨臂锻炼计划
  5. 新天龙八部服务器维护了吗,《新天龙八部》3月11日全服更新维护公告
  6. 洛谷-DFS-1101-单词方阵-个人AC题解及公共题解的笔记
  7. hive 语句总结_HiveQL查询语句总结
  8. 【Elasticsearch】将数据预加载到文件系统缓存中
  9. Ubuntu(Debian)apt-get
  10. 您未必知道的Css技巧
  11. Django 06模板语言的复用
  12. 占空比输出程序c语言,怎样利用c语言来实现占空比的设置?(单片机:SPCE061A)
  13. hadoop安装和配置 详解
  14. Excel——公式与函数基础
  15. 分支定界法(matlab实现)
  16. 【自动化测试】Selenium IDE脚本编辑与操作(了解)
  17. 大数据相加_大数据相加
  18. RNN中BPTT的推导和可能的问题
  19. 《C++ primer》(第5版) chapter9 读书笔记
  20. 科学计算极速图形工作站

热门文章

  1. Spring Boot+JOOQ(六)多数据源配置
  2. java 单例类_Java单例类
  3. 吸顶灯怎么固定天花板_吊顶怎么固定在天花板
  4. 一 重装ubuntu后设置
  5. 很多大号都在用,给大家推荐3个可以帮你写短视频文案的神器
  6. Win 10 无法连接蓝牙耳机解决方法
  7. 计算机考研复试看脸吗,考研经验:考研复试也看脸,颜值也是蛮拼的
  8. 【linux】解决系统卡在ubuntu loading initial ramdisk
  9. web安全|渗透测试|网络安全04天
  10. uniapp showModal与bind(this)