matlab 字符转变成数字

2024-10-30 11:23:40
推荐回答(4个)
回答1:

按照如下操作就可以在matlab实现字符串和数字的转换 :

1.在我们的电脑上打开matlab命令行窗口,输入“a=num2str(123)”,将数字123转换成字符串'123'

2.按回车键之后,可以看到得到了字符串123

3.将数字转换成特定的字符串格式,如1到001,输入“a=num2str(1,'%03d')”,其中3是控制位数

4.在命令行窗口中输入“a=str2num('234')”,通过str2num函数将字符串转换成数字

5.按回车键之后,可以看到已经将字符串'234'转换成了数字234

6.可以通过sprintf函数来将字符串转换成数字,输入“a=sprintf('567')”,按回车键得到数字567。如上就实现了字符串和数字的转换

回答2:

str2num 函数不能转换字符串或元胞数组,而且它对 + 和 - 运算符前后的空格敏感。

X = str2num(chr) 将字符数组转换为数值矩阵。输入可以包含空格、逗号和分号,以指示单独的元素。如果 str2num 不能将输入解析为数值,则返回空矩阵。

此外,str2num 使用 eval 函数,当输入包含函数名称时,此函数可能会产生意外的副作用。为了避免这些问题,请使用 str2double函数。

想正确转换代码如下:

str2num('918')

扩展资料

X = str2double(str) 将 str 中的文本转换为双精度值。

str 包含表示实数或复数值的文本。str 可以是字符向量、字符向量元胞数组或字符串数组。如果 str 是字符向量或字符串标量,则 X 是数值标量。如果 str 是字符向量元胞数组或字符串数组,则 X 是与 str 具有相同大小的数值数组。

表示数值的文本可以包含数字、逗号(千位分隔符)、小数点、前导 + 或 - 符号、以 10 为缩放因子的幂前面的 e 以及复数单位的 i 或 j。不能使用句点作为千位分隔符或使用逗号作为小数点。

如果 str2double 不能将文本转换为数值,则它将返回 NaN 值。

参考资料:

str2num——MathWorks文档

str2double——MathWorks文档

回答3:

错在a1(1)='918' ,而不是str2num(a1(1))

这样写

a1='918'
str2num(a1(1))

就可以了。

因为a1(1)调用了小括号这个运算符,它只能是一个字符或者整数,而不能是字符串。

回答4:

a1=['918';'213']
a1(1) %为字符9
a1(1,:) %为字符918
b=str2num(a1(1,:)) %数字918