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不能识别

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啦。