qq_43572065 2022-10-12 17:23 采纳率: 100%
浏览 38
已结题

matlab 怎么把文本框得到的字符串转换一下传给plot进行绘制

matlab app designer 里面想通过放置一个输入框来获取一个手动输入的函数式,然后plot绘制一下,但是在界面手动输入以后其实得到的是一个字符串,字符串不能作为参数传给plot,想问一下这种情况怎么办? 有什么办法能把字符串的引号去了吗?我再传给plot?

    x = linspace(-1, 1, 11);
    y = app.EditField_3.Value;  %% 通过编辑框输入一个函数式给y
    plot(app.UIAxes, x, y, 'r');  %% 这里y = ' x + 2', plot不能识别
  • 写回答

1条回答 默认 最新

  • 水岂常形 2022-10-13 14:36
    关注

    matlab app designer的输入框很多的是字符串,或以cell元胞数组储存的字符串
    所以,这时候要注意y=app.Editfield.Value后,可能还需要再应用
    y=y{1,1}; %把y从cell中提取成string或者char格式(如果你的y不止一个,而是向量,可能还需要循环一个一个元胞地提出来)

    如果经过提取后确认了y已经是字符串格式,下一步:
    考虑str2num,str2double,把字符转数值,两个试一试总能成的

    加油祝好~

    另:经常有类似报错的话(app designer经常遇到),可以把疑似错误的部分分号去掉,就可以在matlab输出里观察到这个变量,matlab在输出时就能看到它的格式到底是string数组,还是cell元胞数组,还是数值向量。然后根据需求进行格式转化。
    比如这样

    img

    (这个后面不打分号)

    img

    (matlab的命令行窗口内就会输出显示这个值)

    img

    (带引号的5,证明这个不是数值,而是字符)

    可以看出这时候的值是一个字符。需要str2num或者str2double才能作为数值进行应用

    那么改成这样

    img


    再运行

    img


    就可以看到运行完第二句后,字符的引号已经没了。它已经转成数值

    最后测试完了把分号加回去应该就ok啦。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里