matlab 字符转变成数字
请问如何将a1(1)z转变成918。
>> str2num(a1(1))
??? Error using ==> str2num
Requires string or character array input. 展开
按照如下操作就可以在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。如上就实现了字符串和数字的转换
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 值。
参考资料:
这样写
a1='918'
str2num(a1(1))
就可以了。
因为a1(1)调用了小括号这个运算符,它只能是一个字符或者整数,而不能是字符串。
a1(1) %为字符9
a1(1,:) %为字符918
b=str2num(a1(1,:)) %数字918