精华内容
下载资源
问答
  • 字符串 https://ww2.mathworks.cn/help/matlab/characters-and-strings.html 创建字符向量 通过将字符序列括在单引号中来创建一个字符向量。 chr = 'Hello, world' chr = 'Hello, world' 字符向量为 char 类型的...

    字符串

    https://ww2.mathworks.cn/help/matlab/characters-and-strings.html

     

    创建字符向量
    通过将字符序列括在单引号中来创建一个字符向量。
    chr = 'Hello, world'
    chr =
    'Hello, world'
    字符向量为 char 类型的 1×n 数组。在计算机编程中,字符串是表示 1×n 字符数组的常用术
    语。但是,从 R2016b 开始,MATLAB 同时提供 string 数据类型,因此 1×n 字符数组在
    MATLAB 文档中称为字符向量。
    whos chr
    Name Size Bytes Class Attributes
    chr 1x12 24 char
    如果文本包含单个引号,请在分配字符向量时放入两个引号。
    newChr = 'You''re right'
    newChr =
    'You're right'
    uint16 等函数将字符转换为其数值代码。
    chrNumeric = uint16(chr)
    chrNumeric =
    1×12 uint16 row vector
    72 101 108 108 111 44 32 119 111 114 108 100
    char 函数将整数向量重新转换为字符。
    chrAlpha = char([72 101 108 108 111 44 32 119 111 114 108 100])

     

    要将字符向量合并到二维字符数组中,请使用方括号或 char 函数。
    • 应用 MATLAB 串联运算符 []。使用分号 (;) 分隔每一行。每一行都必须包含相同数量的字
    符。例如,合并长度相同的三个字符向量:
    devTitle = ['Thomas R. Lee'; ...
    'Sr. Developer'; ...
    'SFTware Corp.']
    devTitle =
    3×13 char array
    'Thomas R. Lee'
    'Sr. Developer'
    'SFTware Corp.'
    如果字符向量的长度不同,请根据需要用空格字符填充。例如:
    mgrTitle = ['Harold A. Jorgensen '; ...
    'Assistant Project Manager'; ...
    'SFTware Corp. ']

     

     

    调用 char 函数。如果字符向量的长度不同,char 将用尾随空格填充较短的向量,以使每
    一行具有相同数量的字符。
    mgrTitle = char('Harold A. Jorgensen', ...
    'Assistant Project Manager', 'SFTware Corp.')
    mgrTitle =
    3×25 char array
    'Harold A. Jorgensen '
    'Assistant Project Manager'
    'SFTware Corp. '

    水平合并字符向量
    要将字符向量合并到一个行向量中,请使用方括号或 strcat 函数。
    • 应用 MATLAB 串联运算符 []。用逗号或空格分隔输入字符向量。此方法可保留输入数组中
    的任何尾随空格。
    name = 'Thomas R. Lee';
    title = 'Sr. Developer';
    company = 'SFTware Corp.';
    fullName = [name ', ' title ', ' company]
    MATLAB 返回
    fullName =
    'Thomas R. Lee, Sr. Developer, SFTware Corp.'


    调用串联函数 strcat。此方法可删除输入中的尾随空格。例如,组合字符向量以创建一个
    假设的电子邮件地址。
    name = 'myname ';
    domain = 'mydomain ';
    ext = 'com ';
    address = strcat(name, '@', domain, '.', ext)
    address =
    'myname@mydomain.com'

    使用以下任何函数标识字符数组,或者标识字符数组中的某些字符。
    函数 说明
    ischar 确定输入是否为字符数组
    isletter 查找输入字符数组中的所有英文字母
    isspace 查找输入字符数组中的所有空格字符
    isstrprop 查找特定类别的所有字符
    查找字符向量中的空格。
    chr = 'Find the space characters in this character vector';
    % | | | | | | |
    % 5 9 15 26 29 34 44
    find(isspace(chr))
    ans =
    5 9 15 26 29 34 44


    使用空格字符
    blanks 函数会创建一个包含空字符的字符向量。创建一个包含 15 个空格字符的向量。字符
    向量始终会显示在单引号之间。
    chr = blanks(15)
    chr =
    ' '
    在空白字符向量的中间插入一些非空格字符。
    chr(6:10) = 'AAAAA'
    chr =
    ' AAAAA '
    您可以使用 strjust 函数将这些字符的位置向左或向右对齐:
    chrLeft = strjust(chr,'left')
    chrLeft =
    'AAAAA '
    chrRight = strjust(chr,'right')
    chrRight =
    ' AAAAA'
    使用 deblank 删除所有尾随空格字符:
    chrDeblank = deblank(chr)
    chrDeblank =
    ' AAAAA'
    使用 strtrim 删除所有前导和尾随空格:
    chrTrim = strtrim(chr)
    chrTrim =
    'AAAAA'
     

    字符数组中的数据
    有时,字符表示的数据并不对应到文本,例如 DNA 序列。您可以将此类数据存储在数据类型
    为 char 的字符数组中。字符数组使用单引号。
    seq = 'GCTAGAATCC';
    whos seq
    Name Size Bytes Class Attributes
    seq 1x10 20 char
    数组的每个元素都包含单个字符。
    seq(4)
    ans =
    'A'
    使用方括号串联字符数组,就像串联数值数组一样。
    seq2 = [seq 'ATTAGAAACC']
    seq2 =
    'GCTAGAATCCATTAGAAACC'
    在字符串数组引入之前编写的程序中,字符数组很常见。接受 string 数据的所有 MATLAB 函
    数都能接受 char 数据,反之亦然

     

    创建字符串数组
    R2016b 中引入了字符串数组。字符串数组可存储文本片段,并提供一组用于将文本按数据进
    行处理的函数。您可以对字符串数组进行索引、重构和进行串联,就像处理任何其他类型的数
    组一样。此外,还可以访问字符串中的字符,并使用 plus 运算符向字符串追加文本。要重新
    排列字符串数组中的字符串,请使用 split、 join 和 sort 等函数。
    根据变量创建字符串数组
    MATLAB® 提供字符串数组来存储文本片段。字符串数组的每个元素都包含一个 1×n 字符序
    列。
    从 R2017a 开始,您可以使用双引号创建字符串。

    当您处理文本时,将字符序列括在双引号中。可以将文本赋给变量。
    t = "Hello, world";
    如果文本包含双引号,请在定义中使用两个双引号。
    q = "Something ""quoted"" and something else."
    q =
    "Something "quoted" and something else."

     

    作为备选方法,您可以使用 string 函数将字符向量转换为字符串。 chr 为一个 1×17 字符向
    量。 str 为一个与该字符向量具有相同文本的 1×1 字符串。
    chr = '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"

     

    作为备选方法,您可以使用 string 函数将字符向量元胞数组转换为字符串数组。MATLAB 使
    用双引号显示字符串数组中的字符串,使用单引号显示元胞数组中的字符向量。
    C = {'Mercury','Venus','Earth'}
    C = 1x3 cell array
    {'Mercury'} {'Venus'} {'Earth'}
    str = string(C)
    str = 1x3 string array
    "Mercury" "Venus" "Earth"

     

    要将文本添加到字符串的末尾,请使用加号运算符 +。
    f = 71;
    c = (f-32)/1.8;
    tempText = "Temperature is " + c + "C"
    tempText =
    "Temperature is 21.6667C"


    与数值数组类似,字符串数组可以有多个元素。使用 strlength 函数求数组中每个字符串的长
    度。
    A = ["a","bb","ccc"; "dddd","eeeeee","fffffff"]
    A =
    2×3 string array


    strlength(A)

     

    除了字符向量,您还可以使用 string 函数将数值、日期时间、持续时间和分类值转换为字符
    串。
    将数值数组转换为字符串数组。
    X = [5 10 20 3.1416];
    string(X)
    ans = 1x4 string array
    "5" "10" "20" "3.1416"


    将日期时间值转换为字符串。
    d = datetime('now');
    string(d)
    ans =
    "03-Feb-2019 10:12:54"

     

     

    将字符串串联到字符串数组中
    将字符串串联到字符串数组中,就像您串联任何其他类型的数组一样。
    使用方括号 [] 串联两个字符串数组。
    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"

     

     

    字符串相关函数

    字符串数组

    string字符串数组
    strings创建不包含字符的字符串数组
    join合并字符串

    字符数组

    char字符数组
    cellstr转换为字符向量元胞数组
    blanks创建空白字符数组
    newline创建换行符

    字符或字符串数组

    compose将数据格式化为多个字符串
    sprintf将数据格式化为字符串或字符向量
    strcat水平串联字符串
    append合并字符串

    转换输入参数

    convertCharsToStrings将字符数组转换为字符串数组,其他数组不变
    convertStringsToChars将字符串数组转换为字符数组,其他数组不变
    convertContainedStringsToChars在元胞数组或结构体的任何级别转换字符串数组

    在数值和字符串之间转换

    double双精度数组
    string字符串数组
    str2double将字符串转换为双精度值
    num2str

    将数字转换为字符数组

     

    ischar确定输入是否为字符数组
    iscellstr确定输入是否为字符向量元胞数组
    isstring确定输入是否为字符串数组
    isStringScalar确定输入是否为包含一个元素的字符串数组

    文本属性

    strlength字符串长度
    isstrprop确定输入字符串中的哪些字符属于指定类别
    isletter确定哪些字符为字母
    isspace确定哪些字符是空白字符

    查找

    contains确定字符串中是否有模式
    count计算字符串中模式的出现次数
    endsWith确定字符串是否以模式结尾
    startsWith确定字符串是否以模式开头
    strfind在其他字符串中查找字符串
    sscanf从字符串读取格式化数据

    替换

    replace查找并替换一个或多个子字符串
    replaceBetween替换起点和终点之间的子字符串
    strrep

    查找并替换子字符串

     

    join合并字符串
    split在分隔符处拆分字符串
    splitlines在换行符处拆分字符串
    strjoin联接数组中的字符串
    strsplit在指定分隔符处拆分字符串或字符向量
    strtok所选的字符串部分
    erase删除字符串内的子字符串
    eraseBetween删除起点和终点之间的子字符串
    extractAfter提取指定位置后的子字符串
    extractBefore提取指定位置前的子字符串
    extractBetween提取起点和终点之间的子字符串
    insertAfter在指定的子字符串后插入字符串
    insertBefore在指定的子字符串前插入字符串
    pad为字符串添加前导或尾随字符
    strip删除字符串中的前导和尾随字符
    lower将字符串转换为小写
    upper将字符串转换为大写
    reverse反转字符串中的字符顺序
    deblank删除字符串末尾的尾随空白
    strtrim从字符串中删除前导和尾随空白
    strjust

    对齐字符串

     

    strcmp比较字符串
    strcmpi比较字符串(不区分大小写)
    strncmp比较字符串的前 n 个字符(区分大小写)
    strncmpi比较字符串的前 n 个字符(不区分大小写)
    regexp匹配正则表达式(区分大小写)
    regexpi匹配正则表达式(不区分大小写)
    regexprep使用正则表达式替换文本
    regexptranslate将文本转换为正则表达式

     

    数值类型

    整数和浮点数据

    MATLAB® 中的数值类包括有符号和无符号整数、单精度和双精度浮点数。

    默认情况下,MATLAB 以双精度浮点形式存储所有数值。(您不能更改默认类型和精度。)您可以选择以整数或单精度形式存储任何数值或数值数组。

    与双精度数组相比,以整数和单精度数组形式存储数据更节省内存。

    所有数值类型都支持基本的数组运算,例如添加下标、重构和数学运算。

    函数

    double双精度数组
    single单精度数组
    int88 位有符号整数数组
    int1616 位有符号整数数组
    int3232 位有符号整数数组
    int6464 位有符号整数数组
    uint88 位无符号整数数组
    uint1616 位无符号整数数组
    uint3232 位无符号整数数组
    uint6464 位无符号整数数组
    cast将变量转换为不同的数据类型
    typecast在不更改基础数据的情况下转换数据类型
    isinteger确定输入是否为整数数组
    isfloat确定输入是否为浮点数组
    isnumeric确定输入是否为数值数组
    isreal确定数组是否为实数数组
    isfinite确定数组元素是否为有限值
    isinf确定数组元素是否为无限值
    isnan判断查询数组元素是否包含 NaN 值
    eps浮点相对精度
    flintmax浮点格式的最大连续整数
    Inf创建所有值均为 Inf 的数组
    intmax指定整数类型的最大值
    intmin指定整数类型的最小值
    NaN创建所有值均为 NaN 的数组
    realmax最大的正浮点数
    realmin

    最小的标准正浮点数

     

     

     

    MATLAB 默认情况下以双精度浮点形式 (double) 存储数值数据。要以整数形式存储数据,您需要从 double 转换为所需的整数类型。使用上表中所示的转换函数之一。

    例如,如果要以 16 位有符号整数形式存储赋给变量 x 的值 325,请键入

    x = int16(325);
    

    如果要转换为整数的数值带有小数部分,MATLAB 将舍入到最接近的整数。如果小数部分正好是 0.5,则 MATLAB 会从两个同样临近的整数中选择绝对值大小更大的整数:

    x = 325.499;
    int16(x)
    ans =
    	
      int16
    
       325         
    
    x = x + .001;
    int16(x)
    ans =
    
      int16
    
       326  

    在将其他类(例如字符串)转换为整数时,这些整数转换函数也很有用:

    str = 'Hello World';
    
    int8(str)
    ans =
    
      1×11 int8 row vector
    
        72   101   108   108   111    32    87   111   114   108   100

    如果您将 NaN 值转换为整数类,则结果为该整数类中的 0 值。例如,

    int32(NaN)
    ans =
    
      int32
    
       0

     

    数值的显示格式
    默认显示
    默认情况下,MATLAB® 将数值输出显示为 5 位数的定标定点值。您可以将数值的显示方式更改为以下任意方式:

    5 位数的定标定点、浮点或这两种方式中的最佳方式

    15 位数的定标定点、浮点或这两种方式中的最佳方式

    小整数的比率

    十六进制(以 16 为基数)

    Bank 表示法

    format 参考页中列出了所有可用格式。

    要更改数值显示设置,请使用 format 函数或预设对话框(可通过 MATLAB 文件菜单访问)。format 函数只在单个 MATLAB 会话期间更改数值的显示方式,
    而您的“预设”设置则会从一个会话到下一个会话都保持活动状态。这些设置仅影响数值的显示方式,而不影响 MATLAB 计算或保存数值的方式。
    为 x 设置一个整数值并以十六进制(以 16 为基数)格式显示:

    format hex
    x = uint32(876543210)
    x =
       343efcea


    将格式设置为 5 位数的浮点格式:

    format short e
    x
    x =
       1.3333e+00   1.2345e-06


    设置 x 的值并以 5 位数的定标定点格式显示:

    x = [4/3 1.2345e-6]
    x =
        1.3333    0.0000
     

     

     

    确定数值类
    您可以使用以下任意命令检查变量 x 的数据类型。

    whos x

    显示 x 的数据类型。

    xType = class(x);

    将 x 的数据类型赋予变量。

    isnumeric(x)

    确定 x 是否为数值类型。

    isa(x, 'integer')
    isa(x, 'uint64') 
    isa(x, 'float') 
    isa(x, 'double') 
    isa(x, 'single')

    确定 x 是否为指定的数值类型。(此处显示了任意整数、无符号的 64 位整数、任意浮点数、双精度数和单精度数的示例)。

    isreal(x)

    确定 x 是实数还是复数。

    isnan(x)

    确定 x 是否不是数值 (NaN)。

    isinf(x)

    确定 x 是否为无限值。

    isfinite(x)

    确定 x 是否为有限值。

     

    合并不同的整数类型
    概述
    如果您在矩阵中合并不同的整数类型(例如有符号与无符号,或 8 位整数与 16 位整数),MATLAB® 将返回所有元素都属于一个公共类型的矩阵。MATLAB 将生成矩阵的所有元素设置为输入矩阵中的最左侧元素的数据类型。例如,以下串联生成由 3 个 16 位有符号整数组成的向量:

    A = [int16(450) uint8(250) int32(1000000)]
    合并不同大小的整数的示例
    禁用如上所示的整数串联警告后,一次串联下面的两个数字,然后转换它们的顺序。返回值取决于整数的串联顺序。最左侧的类型决定着向量中的所有元素的数据类型:

    A = [int16(5000) int8(50)]
    A =
       5000   50

    B = [int8(50) int16(5000)]
    B =
       50   127
    第一个操作返回由 16 位整数组成的向量。第二个操作返回由 8 位整数组成的向量。元素 int16(5000) 设置为 127,即 8 位有符号整数的最大值。

    相同规则也适用于垂直串联:

    C = [int8(50); int16(5000)]
    C =
        50
       127
    合并有符号与无符号整数的示例
    现在使用有符号与无符号整数做相同的练习。同样,最左侧的元素决定着生成矩阵中的所有元素的数据类型:

    A = [int8(-100) uint8(100)]
    A =
       -100   100

    B = [uint8(100) int8(-100)]
    B =
       100   0
    元素 int8(-100) 设为零,因为它不再有符号。

    MATLAB 在将每个元素串联为一个合并数组之前计算每个元素。换句话说,在合并两个元素前,以下语句的计算结果为一个 8 位有符号整数(等于 50)和一个 8 位无符号整数(无符号的 -50 设为零)。按照该串联,第二个元素保留其零值,但采用无符号 int8 类型:

    A = [int8(50), uint8(-50)]
    A =
      50    0

     

    数据类型检测函数

    函数

    iscalendarduration确定输入是否为日历持续时间数组
    iscategorical确定输入是否为分类数组
    iscell确定输入是否为元胞数组
    iscellstr确定输入是否为字符向量元胞数组
    ischar确定输入是否为字符数组
    isdatetime确定输入是否为日期时间数组
    isduration确定输入是否为持续时间数组
    isenum确定变量是否为枚举
    isfloat确定输入是否为浮点数组
    isgraphics对有效的图形对象句柄为 True
    isinteger确定输入是否为整数数组
    isjava确定输入是否为 Java 对象
    islogical确定输入是否为逻辑数组
    isnumeric确定输入是否为数值数组
    isobject确定输入是否为 MATLAB 对象
    isreal确定数组是否为实数数组
    isstring确定输入是否为字符串数组
    isstruct确定输入是否为结构体数组
    istable确定输入是否为表
    istimetable确定输入是否为时间表
    is*检测状态
    isa确定输入是否具有指定数据类型
    class对象的类
    validateattributes检查数组的有效性
    whos列出工作区中的变量及大小和类型

     

     

     

    数据类型转换

    数值数组、字符数组、元胞数组、结构体或表格之间的转换

    函数

    char字符数组
    cellstr转换为字符向量元胞数组
    int2str将整数转换为字符
    mat2str将矩阵转换为字符
    num2str将数字转换为字符数组
    str2double将字符串转换为双精度值
    str2num将字符数组或字符串转换为数值数组
    native2unicode将数值字节转换为 Unicode 字符表示形式
    unicode2native将 Unicode 字符表示形式转换为数值字节
    base2dec将以 N 为基数表示数字的文本转换为十进制数字
    bin2dec将用文本表示的二进制数字转换为十进制数字
    dec2base将十进制数字转换为以 N 为基数的数字的字符向量
    dec2bin将十进制数字转换为表示二进制数字的字符向量
    dec2hex将十进制数字转换为表示十六进制数字的字符向量
    hex2dec将十六进制数字的文本表示形式转换为十进制数字
    hex2num将 IEEE 十六进制字符串转换为双精度数字
    num2hex将单精度和双精度值转换成 IEEE 十六进制字符串
    table2array将表转换为同构数组
    table2cell将表转换为元胞数组
    table2struct将表转换为结构体数组
    array2table将同构数组转换为表
    cell2table将元胞数组转换为表
    struct2table将结构体数组转换为表
    cell2mat将元胞数组转换为基础数据类型的普通数组
    cell2struct将元胞数组转换为结构体数组
    mat2cell将数组转换为在元胞中包含子数组的元胞数组
    num2cell将数组转换为相同大小的元胞数组
    struct2cell将结构体转换为元胞数组

     

    函数摘要
    此表中列出的函数提供了多种将数值数据转换为字符数组的方法。

    函数说明示例
    char将正整数转换为等效的字符。(截断任何小数部分。)[72 105] → 'Hi'
    string将包含双精度值的数组转换为字符串数组。[72 105] → "72" "105"
    [3.1416 2.178] →
    "3.1416" "2.178"
    int2str将正整数或负整数转换为字符类型。(对任何小数部分
    四舍五入。)
    [72 105] → '72 105'
    num2str将数值类型转换为指定精度和格式的字符类型。[72 105] → '72/105/'
    (格式设置为 %1d/)
    mat2str将数值类型转换为指定精度的字符类型,并返回
    MATLAB 可以计算的字符向量。
    [72 105] → '[72 105]'
    dec2hex将正整数转换为字符类型的十六进制基数。[72 105] → '48 69'
    dec2bin将正整数转换为字符类型的二进制基数。[72 105] → '1001000
    1101001'
    dec2base将正整数转换为字符类型的数字,基数可从 2 到 36。[72 105] → '110 151'

     

    将数字转换为字符代码
    char 函数将整数转换为 Unicode 字符代码,并返回由对等字符构成的字符数组:
    6 字符和字符串
    6-56x = [77 65 84 76 65 66];
    char(x)
    ans =
    'MATLAB'

    将数字表示为文本
    int2str、 num2str 和 mat2str 函数将数值表示为文本,其中每个字符表示输入值中一位单
    独的数字。 int2str 和 num2str 函数常被用来为绘图添加标签。例如,下列线条使用
    num2str 为绘图的 x 轴准备自动化标签:
    function plotlabel(x, y)
    plot(x, y)
    chr1 = num2str(min(x));
    chr2 = num2str(max(x));
    out = ['Value of f from ' chr1 ' to ' chr2];


    转换为特定基数
    另一类转换函数将数值更改为字符数组,将十进制值用另一种基数形式表示,例如二进制或十
    六进制表示形式。这些函数包括 dec2hex、 dec2bin 和 dec2base。

     

    函数摘要
    此表中列出的函数提供了多种将字符数组转换为数值数据的方法。

    函数说明示例
    uintN(例如 uint8)将字符转换为表示该字符的整数代码。'Hi' → 72 105
    str2num将字符类型转换为数值类型。'72 105' → [72 105]
    str2double与 str2num 类似,但提供更佳的性能,用于处理
    字符串数组和字符向量元胞数组。
    "72" "105" → [72 105]
    {'72' '105'} → [72 105]
    hex2num将数值类型转换为指定精度的字符类型,并返回
    MATLAB 可以计算的字符数组。
    'A' → '-1.4917e-154'
    hex2dec将数值类型的十六进制基数转换为正整数。'A' → 10
    bin2dec将字符类型的二进制数字转换为十进制数字。'1010' → 10
    base2dec将字符类型的 2 到 36 内任何进制的数字转换为十
    进制数字。
    '12' → 10 (如果 base
    == 8)


    从特定基数转换
    要将非十进制数字的字符表示转换为该数字的值,请使用以下函数之一:hex2num、
    hex2dec、 bin2dec 或 base2dec。
    hex2num 和 hex2dec 函数都接受十六进制(以 16 为基数)输入,但 hex2num 返回它表
    示的 IEEE 双精度浮点数,而 hex2dec 则将输入转换为十进制整数

    展开全文
  • Matlab时间转字符串函数datestr

    千次阅读 2021-01-26 12:06:53
    功能:将日期和时间转换字符串格式 datestr函数创建一个字符数组,该字符数组显示一个或多个时间点。 但是,表示时间点的最佳方法是使用datetime数据类型。

    目录

    1、将datetime数组转换为日期字符串

    2、将日期向量转换为文本

    3、在datestr中调用datenum来指定表示日期的输入文本的格式

    4、使用符号标识符指定此格式



    功能:将日期和时间转换为字符串格式
    datestr函数创建一个字符数组,该字符数组显示一个或多个时间点。 但是,表示时间点的最佳方法是使用datetime数据类型。

    1、将datetime数组转换为日期字符串

    t = [datetime('now');datetime('tomorrow')]
    DateString = datestr(t)

    输出:

    2、将日期向量转换为文本

    DateVector = [2009,4,2,11,7,18];
    
    datestr(DateVector)

    输出:

    3、在datestr中调用datenum来指定表示日期的输入文本的格式

    formatOut = 'dd mmm yyyy';
    datestr(datenum('16-04-55','dd-mm-yy',1900),formatOut)

    输出:

    4、使用符号标识符指定此格式

    dt = datestr(now,'mmmm dd, yyyy HH:MM:SS.FFF AM')

    输出:

     

     

    其他:

    Matlab之转化时间函数datenum详解

    Matlab之时间函数datetime

     

     

     

    展开全文
  • matlab 字符串与数字互相转换

    千次阅读 2019-09-19 15:57:32
    将数字转换字符串: num2str() 将字符转换为数字: str2num() 示例: a = '123456'; b = 987654; A = str2num(a) % 将字符串转化为数字(也可用 A = str2double(a) 对标量进行操作) B = num2str(b...
    1. 将数字转换为字符串:
     num2str()
    
    1. 将字符串转换为数字:
     str2num()
    
    1. 示例:
    a = '123456';
    b = 987654;
    A = str2num(a)  % 将字符串转化为数字(也可用 A = str2double(a) 对标量进行操作)
    B = num2str(b)  % 将数字转化为字符串
    

    输出结果
    在这里插入图片描述

    展开全文
  • matlab字符

    2020-05-25 10:57:17
    还可以用string函数把字符向量转换字符串 chr='hello' str=string(chr) 使用 [] 运算符创建一个包含多个字符串的字符串数组。str 是一个 2×3 字符串数组,其中包含六个字符串 str = ["Mercury","Gemini","Apollo...

    字符串是用单引号括起来的字符序列
    若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示
    在MATLAB中,下标索引都是从1开始

    操作函数:
    函数大全

    创建字符串

    双引号直接创建

    a="hello"
    

    还可以用string函数把字符向量转换成字符串

    chr='hello'
    str=string(chr)
    

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

    str = ["Mercury","Gemini","Apollo";
           "Skylab","Skylab B","ISS"]
    

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

    L = strlength(str)
    

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

    C = {'Mercury','Venus','Earth'}
    str = string(C)
    

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

    将数值数组转换为字符串数组。

    X = [5 10 20 3.1416];
    string(X)
    

    将日期时间值转换为字符串。
    创建空字符串和缺失字符串

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

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

    str = strings
    

    str =
    “”

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

    chr = ''
    

    chr =

    0x0 empty char array

    创建一个所有元素都是空字符串的字符串数组。您可以使用 strings 函数预分配一个字符串数组。

    str = strings(2,3)
    

    str = 2x3 string array
    “” “” “”
    “” “” “”

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

    str = string(missing)
    

    str =

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

    str(1) = "";
    str(2) = "Gemini";
    str(3) = string(missing)
    

    str = 1x3 string array
    “” “Gemini”

    ismissing(str)
    

    ans = 1x3 logical array

    0 0 1

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

    str = string(missing);
    str == "Gemini"
    

    ans = logical
    0

    str == string(missing)

    ans = logical
    0

    访问字符串数组的元素

    字符串数组支持数组运算,例如进行索引和重构。使用数组索引访问 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”
    “Skylab” “Skylab B” “ISS”
    “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 array

    0 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 + " " + lastnames
    

    names = 5x1 string array
    “Mary Jones”
    “John Adams”
    “Elizabeth Young”
    “Paul Burns”
    “Ann Spencer”

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

    str1 = "Jones";
    str2 = string(missing);
    str1 + str2
    

    ans =

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

    MATLAB 提供了一组丰富的函数来处理字符串数组。例如,您可以使用 split、join 和 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”

    参考

    展开全文
  • 将 UTC 格式的 Matlab 日期向量(即 [2008 01 01 00 00 00])转换为本地时间的日期/时间字符串。 用户可以指定日期/时间字符串的格式。 该函数使用 Java 类和方法,因此它是可移植的,并且与所有平台上的 Matlab ...
  • Matlab时间字符串处理总结

    千次阅读 2015-06-21 13:38:10
    Matlab的日期与时间处理  Matlab用三种格式来表示日期与时间 (1)双精度型日期数字:一个日期型数字代表从公元0年到某一日期的...(2)不同形式的日期字符串:Matlab定义了28种标准日期格式的字符串。 (3)数值型
  • 将序列号转换时间字符串。 时间字符串是 HH:MM:SS.SSS 格式 - 类似于日期字符串,但没有日期。 前任: 时间(现在) 09:15:36.4000 注意:在 MATLAB R2014b 中引入了一个时间日期时间对象,它比这个小实用程序要好...
  • Matlab实现数字转换字符

    万次阅读 2016-11-21 11:21:02
    通过调用mat2str()即可实现数字(无论整型还是小数,一般matlab默认类型都是double)转为字符串类型。  例如我想实现依靠当前遍历的序号作为保存图片的名称,程序如下: for i = 1:100 imgPath = ['./' mat2str(i)...
  • matlab时间格式转换

    万次阅读 2016-04-16 20:10:29
    Matlab提供三种日期格式:日期字符串如’1996-10-02’,日期序列数如729300(0000年1月1日为1)以及日期向量如 1996 10 2 0 0 0,依次为年月日时分秒。 常用的日期操作函数 datestr(d,f) 将日期数字转换为...
  • MATLAB 数据类型之字符

    千次阅读 2020-03-10 23:38:17
    2020年3月8日,用了一天的时间,重温小时代,最后发现,原来小时代就是我们的时代。 (鄙人没有什么文采,就是有时候喜欢感慨,例如现在。) 故事里的四姐妹,林萧,南湘,宛如,顾里,各有特点。 首先来看看林萧吧...
  • timestr = parseTime(numSeconds) 返回一个字符串,描述以年、月、周、日、小时、分钟和秒为单位的等效时间
  • 字符串数组和字符数组中的文本 ...MATLAB 用双引号显示字符串,用单引号显示字符向量。 1.用字符串数组表示文本 可以使用 string数据类型将任何 1×n字符序列存储为字符串。从 R2017a 开始,可以用双引号将文本括...
  • matlab 中常用的日期格式转换

    千次阅读 2020-12-06 12:39:52
    ans = % 返回答案是datetime格式的字符串,可以直接用datenum转换 datetime 2020-12-06 字符串变数字 str2num('19910203') ans = 19910203 数字变字符串 num2str(19910203) ans = '19910203' 字符...
  • Matlab之转化时间函数datenum详解

    千次阅读 2020-12-17 11:02:08
    功能:将日期和时间转换为日期序列值 2.语法格式 DateNumber =datenum(t) DateNumber =datenum(DateString) % 将表示日期和时间的文本转换为日期序列值。如果已知文本中使用的格式,则将格式指定为 format...
  • matlab 数值型日期的转换

    万次阅读 2019-02-26 13:53:55
    当我们读取到这样的时间数据时该如何转换matlab 中的时间呢? 通过大家会想到以下的做法,把 20180910 中的年、月、日分别提取出来,像matlab中用 datevec 对时间进行分解一样,然后进行重组就 ok 了。这种方法.....
  • Matlab中创建字符串数组

    千次阅读 2020-06-19 12:05:55
    创建字符串数组 R2016b 中引入了字符串数组。字符串数组可存储文本片段,并提供一组用于将文本按数据进行处理的函数。可以对字符串数组进行索引、重构和进行串联,就像...MATLAB® 提供字符串数组来存储文本片段。...
  • 此函数将(通常很大)秒数转换为人类可读的字符串。 例如, >> str = seconds2human(1463456.3) 字符串 = “大约 2 周零 2 天。” 您也可以使用第二个输入参数调用该函数; “short”(默认)或“full”。 这决定...
  • str2num(cell2mat(M.textdata(3:end,2))); 时间指定格式分隔 timedata=datevec(M.textdata,'yyyy-mm-dd HH:MM:SS.FFF'); 相邻时间差 timedev=etime(timedata(2:end,:),timedata(1:end-1,:));
  • 此函数通过 Java 方法将本地时间转换为 UTC。 因此,它可以移植到任何平台上的 Matlab。 它可以将 datenums 向量或 datevecs 向量(即 local_time_to_utc(now) 或 local_time_to_utc([2008 01 01 00 00 00]))作为...
  • matlab 时区转换

    2020-08-31 16:41:36
    1. 北京时世界时 %北京时世界时 %时区差8 %例如要将北京时“2018年1月1日4时”转化为世界时 %输入y=BJ2UTC([2018 3 1 14]) %将返回字符串型世界时“2018030106”给变量y function y=BJ2UTC(time)%输入参数为“年...
  • matlab利用字符作画(汉字绘画)

    千次阅读 2019-06-10 23:29:41
    matlab利用字符作画(汉字绘画)1 算法实现原理2 实现3 动图和视频的实现3 尝试更少的字符表现更高的分辨率4 尝试利用边缘线条实现字符作画 1 算法实现原理 算法的原理比较简单,就是利用不同字符具有不同的密度,...
  • 让输出个开始和结束时间,没想到matlab是这样输出的,瞬间感觉蛋疼无比... 5.0000000e+01 4.8000000e+01 4.9000000e+01 5.6000000e+01 4.5000000e+01 4.9000000e+01 5.0000000e+01 4.5000000e+01 5.0000000...
  • 一个非常简单的程序,可以将时间以秒为单位转换字符串,以小时、分钟和秒为单位给出时间。 用于从运行多年的程序生成可读的 toc 输出。 例如 帮助 secs2hms SECS2HMS - 将时间以秒为单位转换字符串,以小时、...
  • 将日期时间或日期向量或序列日期号轻松转换为日期字符串。 日期字符串可以是ISO 8601时间戳,也可以是单个日期/时间值,由(可选)输入令牌选择。 多个令牌可用于输出多个字符串。 此函数支持的 ISO 8601 时间戳...
  • Matlab中将数据类型转换字符

    万次阅读 2014-03-28 11:21:32
    最近发现写程序影响进程的不是程序的关键部位,都是一些小基本的代码实现,一些基础的东西,有必要记录下,下次使用一定不要浪费时间。 不愉快的用法:   >> i = 1; >> a = char(i)   a = ...
  • 时间戳:通俗来讲是指一个能表示一份数据在某个特定时间点已经存在的、 完整的、 可验证的数据。 最常见,可读性最好的时间戳为字符串型时间戳,比如: 2018年05月16日 13点26分53秒 2018/05/16 13:26:53 但...
  • 将 UTC 中给出的时间转换为太阳视在时间或太阳平均时间。 外部函数调用序列: >> [SAT,SMT] = UTC2SolarApparentTime('2000/03/20 15:00:00',-1.416667); >> [SAT,SMT] = UTC2SolarApparentTime('2000/09/23 15:00:...
  • 轻松将ISO 8601格式的日期字符串(时间戳)转换为序列号。 自动检测日期字符串中ISO 8601格式的时间戳,或者通过提供可选的输入令牌,可以将时间戳格式限制为仅检测一种特定样式。 此功能支持的ISO 8601时间戳样式...
  • MATLAB数据类型及转换

    千次阅读 2019-09-09 14:00:07
    MATLAB的主要数据类型有:整型,浮点型,逻辑,字符,日期和时间,结构数组,单元格数组及函数句柄等,其中函数句柄是MATLAB所特有的一种数据类型。 一:整数型与浮点型 MATLAB提供了几种常用整数型数据和浮点型...
  • 时间跨度 t 以秒为单位转换为包含小时、分钟和秒的字符串,但不是天或更大的时间单位。 零值被智能地忽略。 小时、分钟和秒末尾的“s”也包括在内,具体取决于时间单位的实际数量。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,858
精华内容 3,543
关键字:

matlab字符转时间

matlab 订阅