除了字符串连接函数(详见连接字符串)它将数字数据转换为相应的UTF-8编码字符,还有几个将数字数据格式化为字符串的函数。mat2str
和num2str
转换实数矩阵或复数矩阵,而int2str
转换整数矩阵。int2str
取复数值的实数部分,并将分数值舍入为整数。将数字数据格式化为字符串的一种更灵活的方法是把格式数据写成串
函数(详见格式化输出, 把格式数据写成串).
s =
mat2str (x, n)
¶s =
mat2str (x, n, "class")
¶将实数矩阵、复数矩阵和逻辑矩阵格式化为字符串。
返回的字符串可用于通过使用eval
作用
值的精度从下式给出n如果n是一个标量,矩阵的实部和虚部都打印到相同的精度。否则n1.
定义realpart的精度,以及n2.
定义了虚部的精度。的默认值n是15。
如果参数类
则给出的类x以这样的方式包含在字符串中eval
将导致构造同一类的矩阵。
mat2str([-1/3+i/7;1/3-i/7],[42])⇒ “[-0.3333+0.14i;0.3333-0.14i]”mat2str([-1/3+i/7;1/3-i/7],[42])⇒ “[-0.3333+0i 0+0.14i;0.3333+0i-0-0.14i]”mat2str(int16([1-1]),“class”)⇒ “int16([1-1])”mat2str(逻辑(eye(2))⇒ “[true-false;false true]”isequal(x,eval(mat2str(x))⇒ 1.
str =
num2str (x)
¶str =
num2str (x, precision)
¶str =
num2str (x, format)
¶将数字(或数组)转换为字符串(或字符数组)。
可选的第二个参数可以给出有效位数(精确)用于输出或格式模板(format)如在把格式数据写成串
详见格式化输出).num2str
也可以处理复数。
示例:
数字2str(123.456)⇒ 123.456编号2(123.456,4)⇒ 123.5s=num2str([11.34;3,3.56],“%5.1f”)⇒ s=1.0 1.3 3.0 3.6谁的s⇒ 当前作用域中的变量:Attr Name Size Bytes Class=============s 2x8 16 char总计为16个元素,使用16个bytesnum2str(1.234+27.3i)⇒ 1.234+27.3i
这个num2str
函数不是很灵活。为了更好地控制结果,请使用把格式数据写成串
详见格式化输出).
编程说明:
对于MATLAB兼容性,在返回字符串之前将去掉前导空格。
大于的整数燧石
可能无法正确显示。
对于复杂x,格式字符串可能只包含一个输出转换规范,而不包含其他内容。否则,结果将是不可预测的。
任何可选format从程序员指定的在没有过时修改的情况下使用。这与MATLAB它干扰了format基于内部启发法。
str =
int2str (n)
¶将整数(或整数数组)转换为字符串(或字符数组)。
int2str(123)⇒ 123s=int2str([1,2,3;4,5,6])⇒ s=1 2 3 4 5 6谁⇒ 当前作用域中的变量:属性名称大小字节类==============s 2x7 14 char总共是14个元素,使用14个字节
这个函数不是很灵活。为了更好地控制结果,请使用把格式数据写成串
详见格式化输出).
编程说明:
非整数在显示前四舍五入为整数。只显示复数的实数部分。
d =
str2double (str)
¶将字符串转换为实数或复数。
字符串必须采用以下格式之一,其中a和b为实数,复数单位为i
或j
:
如果存在,a和/或b的形式为[+-]d[,.]d[[eE][+-]d],其中括号表示可选参数和d
表示零或多个数字。特殊输入值Inf
, NaN
和NA
也被接受。
str可以是字符串、字符矩阵或元胞数组。对于字符数组,对每一行重复转换,并返回一个双或复数数组。中的空行s被删除,并且不会在数字数组中返回。对于元胞数组,处理每个字符串,并生成与str返回。
对于无法转换的标量或字符串输入str2双
returnsa NaN。同样,对于字符数组输入str2双
为的任何行返回aNaNs无法转换。对于元胞数组,str2双
为的任何元素返回NaNs转换失败。请注意,混合字符串/数字元胞数组中的数字元素不是字符串,这些元素的转换将失败,并返回NaN。
编程说明:str2双
可以替换str2num
,效率更高,避免了使用的安全风险eval
关于未知数据。
详见: str2num.
x =
str2num (s)
¶[x, state] =
str2num (s)
¶转换字符串(或字符数组)s到一个数字(或数组)。
示例:
str2num(“3.141596”)⇒ 3.141596str2num([“1,2,3”;“4,5,6”])⇒ 1 2 3 4 5 6
可选的第二输出,状态,当转换成功时在逻辑上是正确的。如果转换使数字输出失败,x,为空,并且状态是错误的。
小心像str2num
使用eval
函数来进行转换,str2num
将执行字符串中包含的任何代码s使用str2双
以实现更安全、更快的转换。
对于字符串的元胞数组,使用str2双
.
d =
bin2dec (str)
¶返回字符串表示的二进制数对应的十进制数str.
例如
bin2dec(“1110”)⇒ 14
空格在转换过程中被忽略,可以用来提高二进制数的可读性。
bin2dec(“1000 0001”)⇒ 129
如果str是一个字符串矩阵,返回一个列向量,每行包含一个转换后的数字str; 无效行的计算结果为NaN。
如果str是字符串的元胞数组,返回一个列向量,其中每个数组元素有一个转换后的数字str.
bstr =
dec2bin (d)
¶bstr =
dec2bin (d, len)
¶返回一个从1和0组成的字符串,表示整数的转换d转换为二进制数。
如果d是矩阵或元胞数组,返回中每个元素一行的字符串矩阵d,用前导零填充到最大值的宽度。
可选的第二个自变量,len,指定结果中的最小位数。
对于的负元素d,返回二的补码的二进制值。根据输入的大小,结果用前导1填充到8、16、32或64位。正输入元素用相同宽度的前导零填充。
示例:
12月2日(14)⇒ 12月2日“1110”(-14)⇒ "11110010
编程提示:12月2日
丢弃输入的任何小数部分。如果您也需要转换小数部分,请调用dec2基础
小数位数为非零。您也可以使用修理
或圆形的
以确保可预测的舍入行为。
hstr =
dec2hex (d)
¶hstr =
dec2hex (d, len)
¶返回表示整数转换的字符串d到十六进制(以16为基数)。
如果d为负,返回的十六进制补码d.
如果d是矩阵或元胞数组,返回中每个元素一行的字符串矩阵d,用前导零填充到最大值的宽度。
可选的第二个自变量,len,指定结果中的最小位数。
示例:
12月2日(2748)⇒ “ABC”12月2日(-2)⇒ “FE
编程提示:12月2日
丢弃输入的任何小数部分。如果您也需要转换小数部分,请调用dec2基础
小数位数为非零。您也可以使用修理
或圆形的
以确保可预测的舍入行为。
d =
hex2dec (str)
¶返回从字符串表示的十六进制数对应的整数str.
例如
hex2dec(“12B”)⇒ 299己基2秒(“12b”)⇒ 299
如果str是一个字符串矩阵,返回一个列向量,每行包含一个转换后的数字str; 无效行的计算结果为NaN。
如果str是字符串的元胞数组,返回一个列向量,其中每个数组元素有一个转换后的数字str.
str =
dec2base (d, base)
¶str =
dec2base (d, base, len)
¶str =
dec2base (d, base, len, decimals)
¶返回基中的符号字符串基础与值相对应d.
dec2碱基(123,3)⇒ "11120
如果d为负数,则结果将表示d在补语中。例如,负二进制数在二的补码中,并且对其他碱基是正交的。
如果d是矩阵或元胞数组,返回中每个元素有一行的字符串矩阵d,用前导零填充到最大值的宽度。
如果基础是一个字符串,然后是的字符基础用作的数字的符号d.空格(空格、制表符、换行符等)不能用作符号。
12月2日基础(123,“aei”)⇒ “eeeia
可选的第三个自变量,len,指定结果的整数部分中的最小位数。如果省略这一点,那么dec2基础
使用足够的数字来适应输入。
可选的第四个自变量,小数,指定表示输入小数部分的位数。如果忽略此项,则将其设置为零,并且dec2基础
返回用于向后兼容性的整数输出。
dec2碱基(100*pi,16)⇒ “13A”dec2基准(100*pi,16,4)⇒ “013A”dec2碱基(100*pi,16,4,6)⇒ “013A.28C59D”dec2碱基(-100*pi,16)⇒ “EC6”dec2碱基(-100*pi,16,4)⇒ “FEC6”dec2碱基(-100*pi,16,4,6)⇒ “FEC5.D73A63
编程提示:将负输入传递给时dec2基础
,最好显式指定所需输出的长度。
d =
base2dec (str, base)
¶转换str从基数中的一串数字基础到小数位数(以10为基数)。
base2dec(“11120”,3)⇒ 123
如果str是一个字符串矩阵,返回一个列向量,每行一个值为str。如果一行包含无效符号,则相应的值将为NaN。
如果str是字符串的元胞数组,返回中每个数组元素一个值的列向量str.
如果基础是一个字符串,的字符基础用作的数字符号str.Space(“”)不能用作asymbol。
base2dec(“yyyzx”、“xyz”)⇒ 123
s =
num2hex (n)
¶s =
num2hex (n, "cell")
¶将数字数组转换为十六进制字符串数组。
例如
num2hex([-1,1,e,Inf])⇒ “bff00000000000003ff00000000000004005bf0a8b145769 7ff0000000000000
如果参数n是单精度数字或向量,返回的字符串长度为8。例如
num2hex(单个([-1,1,e,Inf]))⇒ “bf800000 3f800000 402df854 7f800000
带有可选的第二个参数单间牢房
,返回字符串的元胞数组,而不是字符数组。
n =
hex2num (s)
¶n =
hex2num (s, class)
¶将十六进制字符数组或字符串元胞数组类型转换为数字数组。
默认情况下,输入数组被解释为表示双精度值的十六进制数字。如果给定的字符少于16个,则字符串用右填充0
字符。
给定字符串矩阵,己基2num
将每一行视为一个单独的数字。
hex2num([“4005bf0a8b145769”;“40240000000000000”])⇒ [2.7183; 10.000]
可选的第二个参数类可以用于使inputarray被解释为不同的值类型。可能的值为
参数 | 字符 |
---|---|
int8 |
2 |
uint8 |
2 |
int16 |
4 |
uint16 |
4 |
int32 |
8 |
uint32 |
8 |
int64 |
16 |
uint64 |
16 |
char |
2 |
single |
8 |
double |
16 |
例如
hex2num([“402df854”;“41200000”],“single”)⇒ [2.7183; 10.000]
[a, …] =
strread (str)
¶[a, …] =
strread (str, format)
¶[a, …] =
strread (str, format, format_repeat)
¶[a, …] =
strread (str, format, prop1, value1, …)
¶[a, …] =
strread (str, format, format_repeat, prop1, value1, …)
¶此函数已过时。使用文本扫描
相反
从字符串中读取数据。
字符串str被拆分为与中的指定符重复匹配的单词format第一个单词与第一个值匹配,第二个单词与第二个值匹配等等。如果单词多于值,则重复该过程,直到处理完所有单词为止。
字符串format描述中的单词str应该进行解析。它可以包含以下值的任意组合:
s
该单词被解析为字符串。
f
n
该单词被解析为数字并转换为双精度。
d
u
该单词被解析为数字并转换为int32。
%*
f
s
该单词被跳过。
对于%s和%d、%f、%n、%u以及相关的%*s…值,可选宽度可以指定为%Ns等,其中n是大于1的整数。对于%f,允许使用格式值,如%n.Mf。
字面量
此外,该格式可能包含文字字符串;这些将在阅读过程中跳过。
对应于第一个值的解析词在第一个输出参数中返回,对于其余的值也是如此。
默认情况下,format是f
,意味着从中读取数字str。如果str仅包含数字字段。
例如,字符串
str=“\兔八哥5.5\鸭子达菲-7.5e-5\企鹅Tux 6
可以使用读取
[a, b, c]=strread(str,“%s%s%f”);
可选数字参数格式_泥炭可用于限制读取的项目数量:
(默认值)读取所有字符串直到结束。
读取N次nargout项目。0(零)是的可接受值格式_泥炭.
的行为strread
可以通过属性值对进行更改。可识别以下属性:
注释风格
的部分str被视为注释,将被跳过。value是注释样式,可以是以下任意一种。
壳
一切从#
跳过最接近行尾的字符。c
之间的一切/*
和*/
被跳过。c
一切从//
跳过最接近行尾的字符。matlab
一切从%
跳过最接近行尾的字符。分隔符
中的任何字符value将用于拆分str转换为单词(默认值=任何空白)。请注意,除非s
提供了格式转换指定器;详见空白
下面的参数。分隔符字符集不能为空;如果需要,Octave替换aspace作为分隔符。
空值
对于非空格分隔的数据中的空数值,要返回的值。默认值为NaN。当数据类型不支持NaN(例如int32)时,默认值为零。
多重delimsasone
将一系列连续的分隔符(中间没有空格)视为单个分隔符。连续分隔符序列不需要垂直排列对齐
.
治疗无效
处理中出现的单个字符串(用分隔符或空格包围)value作为缺失值。
returnenerror
如果valuetrue(1,默认值),忽略读取错误并正常返回。如果为false(0),则报告错误。
空白
中的任何字符value将被解释为空白并进行修剪;定义空白的字符串必须用双引号括起来,以便正确处理特殊字符,如\t
.在每个数据字段中,多个连续的空白字符被折叠到一个空格中,并删除前导和尾随空白。空白的默认值为\b\r\n\t
(注意空格)。除非至少有一个空格,否则空格总是添加到分隔符集s
格式转换值已发布;在这种情况下,只有在中明确指定的空白分隔符
保留为分隔符,并从空白字符集中删除。如果空白字符要保持原样(例如字符串),则指定一个空值(即。,对于
空白
; 显然,空白不能作为分隔符。
当中的字数str与格式转换值数量的精确倍数不匹配,strread的行为取决于的最后一个字符str:
n
数据列填充有空字段或NaN,以便所有列的长度相等
n
数据列未填充;strread返回长度不等的列
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号