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

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 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口