精华内容
下载资源
问答
  • 使用 typeof constructor 共同判断,数组 = object + Array,字符串 = string + String 一.判断是否为数组类型 二.判断是否为字符串类型 参考内容链接

    使用 typeofconstructor 共同判断,数组 = object + Array,字符串 = string + String

    一.判断是否为数组类型

    二.判断是否为字符串类型

    参考内容链接

    展开全文
  • 原因:hive中使用max将会默认对两个字符串从左至右挨个进行比较,即进行第三位比较时发现:“1<7”,故6.14.2<6.7.1   解决方法:首先针对hive本身的函数max无法直接解决,则可以将数据...

    问题描述:需要针对版本号app_version如:6.14.2,6.7.1,10.2.1进行取最大值

     

    原先方法:max(app_version)

     

    结论:失败

    原因:hive中使用max将会默认对两个字符串从左至右挨个进行比较,即进行第三位比较时发现:“1<7”,故6.14.2<6.7.1

     

    解决方法:首先针对hive本身的函数max无法直接解决,则可以将数据转化为可以解决的情况。即针对当前版本最大为两位数的情况,将所有不满两位数的进行补0操作。即:

    concat(
    
    if(length(split(app_version,'\\.')[0])=1,concat('0',split(app_version,'\\.')[0]),split(app_version,'\\.')[0]),'.',
    
    if(length(split(app_version,'\\.')[1])=1,concat('0',split(app_version,'\\.')[1]),split(app_version,'\\.')[1]),'.',
    
    if(length(split(app_version,'\\.')[2])=1,concat('0',split(app_version,'\\.')[2]),split(app_version,'\\.')[2])
    
    )

    先使用split将数据分割开,各位置补0再concat。

     

    则经过上述操作可以使用max函数正确区分出版本号;结果如下:

     

    展开全文
  • 字符串 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 单精度数组
    int8 8 位有符号整数数组
    int16 16 位有符号整数数组
    int32 32 位有符号整数数组
    int64 64 位有符号整数数组
    uint8 8 位无符号整数数组
    uint16 16 位无符号整数数组
    uint32 32 位无符号整数数组
    uint64 64 位无符号整数数组
    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 则将输入转换为十进制整数

    展开全文
  • MySQL字符串类型区分

    千次阅读 2009-11-02 13:34:00
    MySQL字符串类型区分1.首先CHAR, VARCHAR, TEXTBINARY, VARBINARY, BLOB的区别:CHAR, VARCHAR, TEXT称为非二进制字符串;BINARY, VARBINARY, BLOB称为二进制字符串;二进制字符串和非二进制字符串的区别是:二...

     MySQL字符串列类型区分

    1.

    首先CHAR, VARCHAR, TEXT和BINARY, VARBINARY, BLOB的区别:

    CHAR, VARCHAR, TEXT称为非二进制字符串;

    BINARY, VARBINARY, BLOB称为二进制字符串;

    二进制字符串和非二进制字符串的区别是:
    二进制字符串包含的是字节字符串,非二进制字符串包含的是字符字符串;

    后者可以定义字符集,前者不可以;

    而且排序和比较前者基于列值字节的数值值,后者则根据字母顺序进行排序或比较;

     

    BINARY类似与CHAR类型,但是保存二进制字符串而不是非二进制字符串;

    VARBINARY类似与VARCHAR类型,但是保存二进制字符串而不是非二进制字符串;
    同样类似的BLOB对应TEXT类型(相应的有TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB和TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT)

    2.

    CHAR和VARCHAR相同之处:

    都可以定义字符串的长度,如CHAR(M), VARCHAR(M);

     

    不同之处:

    CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间,当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。

     

    VARCHAR(M)定义的列的长度为可变长字符串,M取值可以为0~65535之间,(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。


    注意:MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文 件的大小。

     

    CHAR和VARCHAR最大的不同就是一个是固定长度,一个是可变长度。由于是可变长度,因此实际存储的时候是实际字符串再加上一个记录字符串长度的字节(如果超过255则需要两个字节)

     

    如果分配给CHAR或VARCHAR列的值超过列的最大长度,则对值进行裁剪以使其适合。如果被裁掉的字符不是空格,则会产生一条警告。如果裁剪非空格字符,则会造成错误(而不是警告)并通过使用严格SQL模式禁用值的插入。

     

    由于BINARY和VARBINARY分别与CHAR和VARCHAR对应,因此两者的区别也和CHAR和VARCHAR的区别类似。

     但是注意VARBINARY定义的M值范围为0<=M<=255

    3. VARCHAR和TEXT类型的区别:

    TEXT类型不需要指定M值,其他方面与VARCHAR都类似:比如存储的是可变长度,即不够的部分不需要右边空格填充;等等。

    TEXT与VARCHAR类似,实际需要保存字符串本身外加两个字节保存字符串的实际长度。

    看下表容易理解上面讲述的区别:

    字符串类型的存储需求(M为最大长度,L实际存储字符串的长度)

    列类型
     存储需求
     
    CHAR(M)
     M个字节,0 <= M <= 255 (L为固定的=255,不够补空格)
     
    VARCHAR(M)
     L+1个字节,其中L <= M 且0 <= M <= 65535(参见下面的注释)(MySQL5.0之前都是最大255)
     
    BINARY(M)
     M个字节,0 <= M <= 255
     
    VARBINARY(M)
     L+1个字节,其中L <= M 且0 <= M <= 255
     
    TINYBLOB, TINYTEXT
     L+1个字节,其中L < 28 (256)
     
    BLOB, TEXT
     L+2个字节,其中L < 216 (65536)
     
    MEDIUMBLOB, MEDIUMTEXT
     L+3个字节,其中L < 224
     
    LONGBLOB, LONGTEXT
     L+4个字节,其中L < 232
     
    ENUM('value1','value2',...)
     1或2个字节,取决于枚举值的个数(最多65,535个值)
     
    SET('value1','value2',...)
     1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员)
     


    解释:

    CHAR(M)为固定长度,而且M必须要在0~255之间;

    VARCHAR(M)保存可变长度,M定义了最大长度,M取值0~65535之间;

    TINYTEXT不需要定义长度M值,长度范围不超过28 (256);

    TEXT不需要定义长度M值,长度范围不超过216 (65536);

    下面类似。。。

     

    对于二进制字符串形式:BINARY(M),VARBINARY(M),TINYBLOB,BLOB等类似。

     

     

    更详细的信息参考如下链接:

    http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#string-types

     

    4.

    其他一些参考信息:

    1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。

    2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

    3.NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种 多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文 与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个 字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储 4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar 数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

    所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/omohe/archive/2007/09/30/1807244.aspx

    展开全文
  • MATLAB 中的数据类型主要包括数值类型、 逻辑类型字符串、函数句柄、 结构体单元数组类型。 这6种基本的数据类型都是按照数组形式存储操作的。 一、文本字符串 在MATLAB中, 文本当作特征字符串或简单地当作...
  • python里面的数据是有类型的,虽然没有显示声明。...但是,他也是区分类型的。根据什么区分?根据他的值来区分x=1y="1"z=1.0print(type(x))print(type(y))print(type(z))class intclass strclass...
  • 字符型 没有,推荐使用byte或int 字母一个字节,汉字3个字节 存储:字符->码值(数字)->二进制->保存 直接输出不行 %c 字符串型 由字节组成 直接输出可以
  • mysql解析json字符串字符串查找,子串截取字段类型转换相关总结 很多时候,我们需要在sql里面直接解析json字符串。这里针对mysql5.7版本的分水岭进行区分。 1.对于mysql5.7以上版本  使用mysql的内置函数...
  • 计算机的视角,世间万物不过是一串又一串的二进制字节流,以人类认识的字符为例,每一个字符串就必须有与之对应一个二进制码,这就叫做编码。然而在发明计算机时,发明者们只考虑到计算机处理的是小写字母大写字母...
  • Python数据类型 1、 数字类型,int ,float,long,complex 整形、浮点型、长整形、复合类型 2、字符串类型 string 3、字符串索引,切片 数据类型间的转换 格式化字符串 字符串格式化符号
  • 字符串转boolean类型

    2019-08-26 10:20:24
    //只要value是true字符串就可以转换为boolean的true,否则为false //value不区分大小写 Boolean.parseBoolean(String value)
  • 关于整型、浮点型和字符串数据类型 区分它们 整型(或 int)数据类型表明值是整数;带有小数点的数,如 3.14,称为“浮点型”(或 float);带有" "或’ '的表明是字符串(或str)。 数学操作符 操作符 操作 ...
  • 在js中字符串区分大小写的,如果要求不区分的话,用下面的函数: /** * 忽略大小写判断字符串str是否包含subStr * @param subStr 子字符串 * @param str 父字符串 * @returns boolean */ function ...
  • 情境如下:当你在C#中调用JNI的方法时,会存在Invalid indirect reference 0x5a02d6e0 in decodeIndirectRef错误。例如:testdemo.cpp文件中的类型为char* ...问题是requestId传递的是数字型的字符串,你需要NewString
  • 布尔类型、数字类型、字符串类型、数组类型、元组类型 先看文件目录 布尔类型(boolean)true false index.ts 只能是赋值 true/false,如果赋值其他值则会报错 flag = 'str' // 错误写法 这样写法也可以 flag = ...
  • 字符串简介 * 在Java中,一个字符串可以用String类型来存储 ...* 字符串可以看做是一个特殊的字符数组,为了跟普通的字符数组区分开来,应该在字符串的尾部添加了一个结束标志'\0'。 '\0'是一个ASCII
  • mysql字符串类型

    2015-04-30 14:24:14
    字符串类型 charvarchar 1、char(M)M为该字符串占的最大长度,长度为0~255字节之间任意值,占用固定字节。 2、varchar(M)长度为0~65535字节之间任意值。实际占字节数为实际字符长度的基础上加1,因为最后有个结束...
  • 字符串转为数组 按照逗号区分 String[] array = rolecode.split(",");
  • C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗? 对于这个问题,大多教科书中的回答是“是”。其实不然,字符数组和字符串是完全不相同的两个概念,千万不要...
  • toLowerCase() 方法用于把字符串转换为小写,在做字符串比较不区分大小写的时候用此方法, 效果: 代码: //不区分大小写 String str = ‘ABC’ if(‘abc’ == str.toLowerCase()) { return “1”; // 正确 } else{...
  • 字符串学习 定义:java将于字符串相关的类容面向的对象了,形成的类就叫字符串类。 字符串的表示方法; * String string = "字符串" 字符串的分类: 1、不可变字符串 定义: String:说的...
  • 这里的基本数据类型包括:布尔、整型(包括有/无符号、二...由于将字符串转为其他数据类型可能会出错,strconv 包定义了两个 error 类型的变量:ErrRange ErrSyntax。其中,ErrRange 表示值超过了类型能表示的最大
  • vb中Variant类型调用mid函数返回的字符串还是在原来字符串里面么?怎么区分Variant类型和字符串类型?vb怎么调用不定长的mid?
  • C语言再学习 -- 字符串和字符串函数

    千次阅读 2016-09-01 09:27:55
    看书都有点看不下去的样子,到了C语言最难掌握的部分了,数组、指针、字符串。硬着头皮看书总结吧。 一、字符串 1、字符串介绍 字符串是以空字符(\0)结尾的char数组,例如: char ar[20] = "hello world&...
  • 1、C语言中字符定义为一种...char型数组和字符串的区别就是是否在末尾处有‘\0’。 3、char是一个单独的字符,在32位系统中占用1个字节的存储空间;字符串是固定长度的连续空间(实际上就是数组的定义); 举例: ...
  • C语言12之什么是字符串类型

    万次阅读 多人点赞 2018-03-04 15:55:08
    1.C语言的字符串类型1.1 C语言没有原生字符串类型1)很多高级语言像java、C#等就有字符串类型,有个String来表示字符串,用法int这些很像,可以String s1 = "linux";来定义字符串类型的变量。2)C语言没有...
  • qt使用QString类以表示unicode字符串,以及QByteArray表示字节数组或字符串。在python v3中 对应的本地对象类型是strbytes.。在python v2中 对应的本地对象类型是unicodestr... PyQt5尽最大努力自动转换...
  • (C语言)常见字符函数和字符串函数

    万次阅读 多人点赞 2018-07-23 10:49:50
    字符串通常放在常量字符串中或者字符数组中,字符串常量适用于那些对她不做修改的字符串函数。 string.h这个头文件里声明的函数原型也全是针对char数组的种种操作。 直到C++中才出现了string这个类 这篇文章就...
  • for(int i=0;... if(Character.isDigit(i)==true){ //x类型转换然后统计 } } 如下可以将字母与数字分离出来用正则!String str="200Minute"; String str2="300.25Hour"; String regex="[a-zA-Z]"; St

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 344,911
精华内容 137,964
关键字:

如何区分字符串和其它类型