matlab 字符转变成数字

a1(1)='918'请问如何将a1(1)z转变成918。>>str2num(a1(1))???Errorusing==>str2numRequiresstringorc... a1(1)='918'
请问如何将a1(1)z转变成918。

>> str2num(a1(1))
??? Error using ==> str2num
Requires string or character array input.
展开
 我来答
冰封月x
高粉答主

2018-12-11 · 关注我不会让你失望
知道答主
回答量:408
采纳率:100%
帮助的人:10.6万
展开全部

按照如下操作就可以在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。如上就实现了字符串和数字的转换

丿MarsHan
2018-12-16 · TA获得超过4921个赞
知道答主
回答量:79
采纳率:0%
帮助的人:43万
展开全部

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文档

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吾尝终日而思
2009-04-16 · TA获得超过1万个赞
知道大有可为答主
回答量:1276
采纳率:0%
帮助的人:751万
展开全部
错在a1(1)='918' ,而不是str2num(a1(1))

这样写

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

就可以了。

因为a1(1)调用了小括号这个运算符,它只能是一个字符或者整数,而不能是字符串。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
昱婷漫步
2017-09-11 · TA获得超过1170个赞
知道小有建树答主
回答量:713
采纳率:94%
帮助的人:467万
展开全部
a1=['918';'213']
a1(1) %为字符9
a1(1,:) %为字符918
b=str2num(a1(1,:)) %数字918
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式