用Matlab怎样画出下面的图形,就是一条线上隔一段有一个点或者其他标识,并且可以使用legend,怎样用? 我来答 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 matlab 图形 一条线 标识 legend 搜索资料 1个回答 #热议# 什么是淋病?哪些行为会感染淋病? 百度网友1c6e06f 2014-05-15 · TA获得超过2893个赞 知道小有建树答主 回答量:695 采纳率:66% 帮助的人:647万 我也去答题访问个人页 关注 展开全部 figure( 1 );x = 1 : 10;y = x.^2;h = plot( x, y, '.-',...% -表示直线,.表示每个折点同时画点 'Color', [ 0, 0, 0.5 ],... % 线条颜色 'MarkerSize', 15,...% 点大小 'MarkerEdgeColor', [ 1, 0, 0 ] );% 点颜色xlabel( 'x axis' );ylabel( 'y axis' );title( 'a line' );legend( 'line' ); 更多追问追答 追问 为什么我画出的是这样的而不是上面那种一条平滑的曲线?能不能给个邮箱帮我看下程序呀?非常感谢。 追答 你就贴在这里吧,这不是一个大问题 追问 很长的程序,本想写上关键的程序,可是总是提示说字数超过最大限制,郁闷,别人的程序都是怎么贴上去的,我自己想想吧,谢谢你了。 追答 你就把绘图这几句代码贴上就可以了 追问 x=1:200:r; y=1:200:r;for i=1:200:r; x(i)=i; y(i) =aver(i).energy;%aver(i).energy是上面程序里面的,大概=(-1/2000)*(i-2000)end %后面就是画图了 追答 我认为你把for循环的索引变量i弄错了,你的意思应该是对x、y数组的第一个、第二个、第三个.....分别赋值把,但按你写的i每次循环的值分别是1、201、401、601。应该是这样的:num = length( x );for i = 1 : num........ 追问 你这样也是不对的,因为我的程序本来对每一个i(从1到r=4000)都对应一个x(i)、y(i).如果对x、y、i写成=1:r;画出来的是一条粗线条;写成=1:200:r是为了间隔一段描一个点,但是,出来的图形就是上面那个,还是不对。呃……这个问题我慢慢想想吧。谢谢你啦!! 追答 总之你把数组索引搞乱了,假设r = 600,其实初始x只有三个数,当for循环到第二趟时,你要对x的第201个元素赋值,一下把x长度扩充到201,那么matlab会自动把x的第四个到第200个元素赋值为0,所以才会出现那么多与(0, 0)的连线。你这个流程 不能这样写。 追问 你分析的有道理,但是如果从1到4000都显示出来就是一条线了,要怎么用圆点或者其他符号标记呢?要怎么修改呀?怎么改来改去还是不对呀 追答 反正你不要把xy动态扩充就是了,xy该是多长就多长,如果你采集了4000个xy坐标序列,那么就用这4000个点绘制图形。x=1:200:r; y=1:200:r;for i=1:200:r; x(i)=i;不要再弄这么没道理的代码。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2018-04-11 如何使用Matlab画图的legend和label 1 2017-10-25 如何使用Matlab画图的legend和label 2017-01-01 如何使用Matlab画图的legend和label 更多类似问题 > 为你推荐: