• MATLAB中split函数使用


    目录

    语法

    说明

    示例

    在空白处拆分字符串并重新联接

    在分隔符处拆分字符串并用新的分隔符联接

    使用模式作为分隔符拆分字符串

    在多个分隔符处拆分字符串

    沿指定维度定向字符串

    拆分字符串并返回分隔符


            split函数的功能是在分隔符处拆分字符串。

    语法

    1. newStr = split(str)
    2. newStr = split(str,delimiter)
    3. newStr = split(str,delimiter,dim)
    4. [newStr,match] = split(___)

    说明

            newStr ​ = split(str) 在空白字符处拆分 str 并以输出数组 newStr 的形式返回结果。输入数组 str 可以是字符串数组、字符向量或字符向量元胞数组。如果 str 是一个字符串数组,则 newStr 也是一个字符串数组。否则,newStr 为字符向量元胞数组。newStr 不包括 str 中的空白字符。

            如果 str 是字符串数组或字符向量元胞数组,并且有多个元素,则每个元素必须可分成相同数量的子字符串。

    • 如果 str 是一个字符串标量或字符向量,则 newStr 是一个 N×1 字符串数组或字符向量元胞数组,其中 N 是子字符串的数量。

    • 如果 str 是一个 M×1 字符串数组或元胞数组,则 newStr 是一个 M×N 数组。

    • 如果 str 是一个 1×M 字符串数组或元胞数组,则 newStr 是一个 1×M×N 数组。

            对于任意大小的字符串数组或元胞数组,split 沿大小为 1 的第一个尾部维度确定 N 个子字符串的方向。

            如果 str 的每个元素的子字符串数量不相同,则在 for 循环中调用 split,一次拆分 str 的一个元素。

            newStr  = split(str,delimiter) 在 delimiter 指定的分隔符处拆分 str 的每个元素。输出 newStr 不包括分隔符。

            newStr = split(str,delimiter,dim) 将 str 的每个元素拆分为一个向量,该向量的方向为 dim 指定的维度方向。

            [newStr,match] = split(___) 还返回一个数组 match,它包含作为 split 函数拆分 str 的位置而出现的所有分隔符。您可以将此语法与前面语法中的任何输入参数结合使用。

    示例

    在空白处拆分字符串并重新联接

            在空白字符处拆分字符串数组中的姓名。然后重新排序并联接这些字符串,使姓在名的前面。创建一个包含姓名的 3×1 字符串数组。从 R2017a 开始,可以使用双引号创建字符串。

    1. names = ["Mary Butler";
    2. "Santiago Marquez";
    3. "Diana Lee"]
    4. names = 3x1 string
    5. "Mary Butler"
    6. "Santiago Marquez"
    7. "Diana Lee"

            如果使用的是 R2016b,请使用 string 函数而不是双引号来创建字符串数组。在空白字符处拆分 names,使其成为一个 3×2 字符串数组。

    1. names = split(names)
    2. names = 3x2 string
    3. "Mary" "Butler"
    4. "Santiago" "Marquez"
    5. "Diana" "Lee"

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

    1. names = [names(:,2) names(:,1)];
    2. names(:,1) = names(:,1) + ','
    3. names = 3x2 string
    4. "Butler," "Mary"
    5. "Marquez," "Santiago"
    6. "Lee," "Diana"

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

    1. names = join(names)
    2. names = 3x1 string
    3. "Butler, Mary"
    4. "Marquez, Santiago"
    5. "Lee, Diana"

    在分隔符处拆分字符串并用新的分隔符联接

            创建一个包含文件夹路径的字符串。从 R2017a 开始,可以使用双引号创建字符串。

    1. myPath = "/Users/jdoe/My Documents/Examples"
    2. myPath =
    3. "/Users/jdoe/My Documents/Examples"

            在 / 字符处拆分路径。split 将以 5×1 字符串数组的形式返回 myFolders。第一个字符串为 "",因为 myPath 以 / 字符开头。

    1. myFolders = split(myPath,"/")
    2. myFolders = 5x1 string
    3. ""
    4. "Users"
    5. "jdoe"
    6. "My Documents"
    7. "Examples"

            使用 \ 作为分隔符,将 myFolders 联接成一个新路径。添加 C: 作为路径的开头。

    1. myNewPath = join(myFolders,"\");
    2. myNewPath = 'C:' + myNewPath
    3. myNewPath =
    4. "C:\Users\jdoe\My Documents\Examples"

    使用模式作为分隔符拆分字符串

    自 R2020b 开始提供

    通过将文本视为分隔符从字符串中获取数字。使用模式匹配文本。然后将数字相加。

    首先,创建一个包含数字的字符串。

    1. str = "10 apples 3 bananas and 5 oranges"
    2. str =
    3. "10 apples 3 bananas and 5 oranges"

            然后,创建一个匹配空白字符或字母的模式。

    1. pat = " " | lettersPattern
    2. pat = pattern
    3. Matching:
    4. " " | lettersPattern

            使用 pat 作为分隔符拆分字符串。空字符串表示空白和其间没有任何内容的字母序列之间的拆分。例如,在 "10 apples" 中,分隔符 " " 之前有一个拆分,然后在 " " 和 "apples" 之间有一个拆分。由于分隔符 " " 和 "apples" 之间没有任何内容,split 函数返回空字符串来指示它们之间没有任何内容。

    1. N = split(str,pat)
    2. N = 11x1 string
    3. "10"
    4. ""
    5. ""
    6. "3"
    7. ""
    8. ""
    9. ""
    10. ""
    11. "5"
    12. ""
    13. ""

            丢弃空字符串,并保留表示数字的子字符串。

    1. N = N(strlength(N) > 0)
    2. N = 3x1 string
    3. "10"
    4. "3"
    5. "5"

            最后,将 N 转换为数值数组,并对其求和。

    1. N = str2double(N);
    2. sum(N)
    3. ans = 18

            有关创建模式对象的函数列表,可以参考pattern。

    在多个分隔符处拆分字符串

            创建一个字符串。从 R2017a 开始,可以使用双引号创建字符串。

    1. str = "A horse! A horse! My kingdom for a horse!"
    2. str =
    3. "A horse! A horse! My kingdom for a horse!"

            在感叹号和空白字符处拆分 str。newStr 是一个 10×1 字符串数组。最后一个字符串为空字符串 "",因为 str 中的最后一个字符是分隔符。

    1. newStr = split(str,[" ","!"])
    2. newStr = 12x1 string
    3. "A"
    4. "horse"
    5. ""
    6. "A"
    7. "horse"
    8. ""
    9. "My"
    10. "kingdom"
    11. "for"
    12. "a"
    13. "horse"
    14. ""

    沿指定维度定向字符串

            创建一个包含姓名的 3×1 字符串数组。从 R2017a 开始,可以使用双引号创建字符串。

    1. names = ["Mary Butler";
    2. "Santiago Marquez";
    3. "Diana Lee"]
    4. names = 3x1 string
    5. "Mary Butler"
    6. "Santiago Marquez"
    7. "Diana Lee"

            在空白字符处拆分数组。默认情况下,split 沿大小为 1 的第一个尾随维度定向输出子字符串。因为 names 是一个 3×1 字符串数组,所以 split 沿 splitNames 的第二个维度(即列)来定向子字符串。

    1. splitNames = split(names)
    2. splitNames = 3x2 string
    3. "Mary" "Butler"
    4. "Santiago" "Marquez"
    5. "Diana" "Lee"

            要沿行(即第一个维度)定向子字符串,请在指定分隔符之后指定维度。splitNames 现在是一个 2×3 字符串数组,名在第一行,姓在第二行。

    1. splitNames = split(names," ",1)
    2. splitNames = 2x3 string
    3. "Mary" "Santiago" "Diana"
    4. "Butler" "Marquez" "Lee"

    拆分字符串并返回分隔符

            创建一个字符串。从 R2017a 开始,可以使用双引号创建字符串。

    1. str = "bacon, lettuce, and tomato"
    2. str =
    3. "bacon, lettuce, and tomato"

            在分隔符处拆分 str。在一个字符串数组中返回拆分结果,在第二个字符串数组中返回分隔符。当连续的分隔符之间没有任何文本时,split 将返回空字符串。

    1. [newStr,match] = split(str,["and",","," "])
    2. newStr = 7x1 string
    3. "bacon"
    4. ""
    5. "lettuce"
    6. ""
    7. ""
    8. ""
    9. "tomato"
    10. match = 6x1 string
    11. ","
    12. " "
    13. ","
    14. " "
    15. "and"
    16. " "

            使用 join 函数将 newStr 和 match 重新联接起来。

    1. originalStr = join(newStr,match)
    2. originalStr =
    3. "bacon, lettuce, and tomato"

    输入参数

    str - 输入文本

            输入文本,指定为字符串数组、字符向量或字符向量元胞数组。

    delimiter - 分隔子字符串

    分隔子字符串,指定为下列值之一:

    • 字符串数组

    • 字符向量

    • 字符向量元胞数组

    • ​pattern 数组(自 R2020b 开始提供)

            ​​在 delimiter 中指定的子字符串不会显示在输出 newStr 中。

    ​        ​在一个字符串数组、字符向量元胞数组或 pattern 数组中指定多个分隔符。split 函数根据 delimiter 的元素拆分 str。分隔符在 delimiter 中显示的顺序无关紧要,除非有多个分隔符都从 str 中的同一字符处开始匹配。在这种情况下,split 函数将在 delimiter 中的第一个匹配分隔符处进行拆分。

    dim - 拆分字符串时所沿的维度

            拆分字符串时所沿的维度,指定为正整数。如果不指定 dim,则默认值为大小不等于 1 的最后一个数组维度。

    输出参数

    newStr - 从原始数组拆分出来的子字符串

            从原始数组拆分出来的子字符串,以字符串数组或字符向量元胞数组形式返回。如果输入数组 str 是字符串数组,则 newStr 也是字符串数组。否则,newStr 为字符向量元胞数组。

    match - 找到的分隔符

            标识的分隔符,以字符串数组或字符向量元胞数组形式返回。如果输入数组 str 是字符串数组,则 match 也是字符串数组。否则,match 为字符向量元胞数组。

            match 包含的元素总是比输出 newStr 包含的元素少一个。

  • 相关阅读:
    基于SpringBoot的篮球竞赛预约平台
    Flink提交jar出现错误RestHandlerException: No jobs included in application.
    互联网上的音频和视频服务
    Python归并排序
    价格监测,如何锁定目标链接
    【Mysql】
    代码随想录算法训练营第23期day24|回溯算法理论基础、77. 组合
    【高级篇 / ZTNA】(7.0) ❀ 03. FortiGate 防火墙与 FortiClient EMS 连接 ❀ FortiGate 防火墙
    【BUG】Windows状态栏总卡死解决办法
    智囊AI-基于 ChatGPT 的 AI 工具产品 你的私人AI助手
  • 原文地址:https://blog.csdn.net/jk_101/article/details/125798145