一个matlab画图的代码,画图总是报错,哪位帮忙看看问题出在哪里

woshigefantong 2015-11-29 11:51:05
本人新手,第一次用matlab画图,现在想在一个图上加一个y=0的虚线。单独测试这条虚线是没有问题的,可是一加到图上就出错。
为题到底出在哪里呢?请帮忙看一下。谢谢
代码如下

红色的代码是画虚线的,单独测试时没有问题的
上面的代码上画一个控制坐标范围在y轴[-0.5,0.5], x轴[0.7,0.9]的图
然后希望在图上加一条y=0的曲线


x=[0.8615,0.8428,0.7852,0.7959,0.7918,0.7199,0.8623,0.7436,0.8691,0.7984,0.7917];
y=[0.29442168063167506,0.19389055483260173,0.24690383487136713,-0.07104419389892005,0.25820812017776185,0.07266947434371361,0.19306162161726803,0.19402755535719096,0.3809557404866936,0.24799455060683467,0.25444282557248116];
figure
scatter(x,y);
axis([0.7 0.9 -0.5 0.5]);
set(gca,'xtick',[0.7 0.75 0.8 0.85 0.9]);
set(gca,'ytick',[-0.5 -0.4 -0.3 ...0.5]);
hold on;
plot([0.7,0.9],[0,0],'--');
...全文
132 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
蔡姐 2015-12-28
  • 打赏
  • 举报
回复
好像是第2个SET语句有问题,这回能画出虚线了。 x=[0.8615,0.8428,0.7852,0.7959,0.7918,0.7199,0.8623,0.7436,0.8691,0.7984,0.7917]; y=[0.29442168063167506,0.19389055483260173,0.24690383487136713,-0.07104419389892005,0.25820812017776185,0.07266947434371361,0.19306162161726803,0.19402755535719096,0.3809557404866936,0.24799455060683467,0.25444282557248116]; figure(1) scatter(x,y); axis([0.7 0.9 -0.5 0.5]); set(gca,'xtick',[0.7 0.75 0.8 0.85 0.9]); set(gca,'ytick',[-0.5 -0.4 -0.3 0.2 0.5]); hold on; figure(1) plot([0.7,0.9],[0,0],'--'); hold off;
原创毕业设计完工贴来和大家分享一下吧-metro_simulation.rar 我的毕业设计是做一个地铁列车运行过程的仿真系统。当然,不是很复杂。在simulink里面建立模型,然后用GUI对其中变量进行赋值,并通过GUI中的一段函数对制动点进行试凑,最后显示列车的速度-路程曲线,行驶总路程和时间。 ------------------------------------------- 现将GUI中所调用的功能及其实现方法整理如下: 1、点击按钮,切换GUI。这个现实起来很简单,只要在按扭的callback函数里写上run; close;即可。 2、把GUI中edit框中的数值赋给simulink中对应的变量。这个问题一开始困扰了我好一段时间,看了很多例子都不行,有人说用set_param,但我用了之后总是报错说变量没有定义。其实,只需要用等号对变量名进行赋值即可。例如:simulink中某个变量为M,edit框的确Tag为name,那么相应的代码就是M=str2double);这里的str2double是将字符串转变为double型的双精度数。调用simulink前写上options = simset;再进行调用sim; 3、从excel中读取数据,并将其赋给对应的edit框。这个在math大哥的视频里已经有详细解析了,这里就不缀述了。 4、将GUI中的参数保存进excel文件中,这个与读取过程类似,不过用的函数是uiputfile和xlswrite,具体的到matlab帮助里看一下就可以了,里面写得非常清楚。 5、将最后的仿真结果绘制来。这个实现起来相对比较麻烦。首先在simulink里要添加"to workspace"模块(注意save format一定要选择Array)。然后在调用simulink仿真的语句后面,用assignin函数将"to workspace"输的数据保存在workspace中的向量中,例如assignin; result是输的结果,k1是保存的向量名。在调用k1进行画图的时候,需要用evalin函数将k1从工作空间中读取来,如k2=evalin。 如果输的结果是最终的一个数,而非一个数组,则可以用result来获取,这里的t是仿真时间长度,step为仿真步长。 ---------------------- 我用到的GUI主要部分就是这些,希望能对大家有些帮助。GUI入手的确比较困难,但只要多看几个例子,问题就会迎仞而解。ilovematlab论坛的确给我们提供了一个良好的平台,从这里学到了很多有用的东西。 ---------------------------------- ---------------------------------- 附件中是我的源程序,运行时先从preface开始。 1.jpg 2.jpg 3.jpg 4.jpg

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧