Skip to content

MATLAB - 字符串和字符

文本处理是编程的基础,从读取数据文件到创建用户界面都离不开它。现代MATLAB提供了强大且直观的 string 数组类型,使得文本操作比以往任何时候都更加简单和高效。

理解MATLAB处理文本的两种方式至关重要:

  • string (双引号): 这是推荐的现代方法。 string 是一种专门用于文本的数据类型。字符串数组可以存储不同长度的文本,无需填充,并附带一套丰富的操作函数。使用双引号 ("") 来创建字符串。
  • char 数组 (单引号): 这是传统方法。char 数组是单个字符的数组。1xN 的 char 数组是一个“字符向量”。要存储多个文本,必须使用所有行长度相同(需要用空格填充)的 MxN 数组或使用单元格数组。在旧代码中你仍会遇到这种类型。

创建字符串很简单。要组合它们,可以使用加号 (+) 运算符,它能直观地拼接字符串,甚至能自动将数字转换为文本。

string 类型有许多内置函数,它们使用点表示法调用,使得代码具有高度可读性。这些函数取代了旧的 str* 函数。

任务现代 string 函数传统 char 函数
查找子字符串contains(str, pattern)strfind, contains
替换子字符串replace(str, old, new)strrep
拆分字符串split(str, delimiter)strsplit, strtok
连接字符串数组join(str_array, delimiter)strjoin
转换为小写/大写lower(str), upper(str)lower, upper
检查是否以…开头/结尾startsWith(str, pat), endsWith(str, pat)N/A (手动)
获取长度strlength(str)length

假设你有一些日志条目,需要从中提取特定信息。string 函数使这项任务变得简单。

你将不可避免地遇到使用 char 数组的旧代码。在这两种类型之间进行转换很容易。

  • 在新代码中使用 string。 它在灵活性、可读性和功能性方面的优势是显著的。
  • 使用 + 运算符进行简单拼接。 它简洁明了,并能自动处理类型转换。
  • 使用 join 来组合数组元素,并使用 split 来拆分它们。这比手动循环更健壮。
  • 利用函数形式提高清晰度。 与 str.lower() 相比,使用 lower(str) 通常与MATLAB的其他函数更一致,并能提高可读性。
  • 当处理非常大的文本数据且性能至关重要时, char 数组有时会更快,因为它们的开销更小。然而,对于大多数应用程序而言,string 数组的便利性超过了这一点。