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元胞数组,还是数值向量。然后根据需求进行格式转化。
比如这样
可以看出这时候的值是一个字符。需要str2num或者str2double才能作为数值进行应用
那么改成这样
最后测试完了把分号加回去应该就ok啦。