mAtlAB中For循环与plot

你要用hold on命令来锁定画图框.例如: for i=1:20053 if(mask(i)==1) plot3(r(i),g(i),b(i)) hold on end end

因为.

因为你的这行命令画出来的只是一些离散的点,比如将画图的格式价格'*'就会更明显一些syms t w xfor t=0:0.02:1w=10;fai=t*w;x=-w*cos(fai);plot(t,x,'*')hold onend

xx=[]; yy=[]; zz=[]; for a1=(-0.5:0.02:0.5)*pi; for a2=(-0.6:0.006:-0.3)*pi; for a3=(-0.23:0.007:0.12)*pi; l1=250;l2=760;l3=420; x=cos(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1); y=sin(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1); z=l3.*sin(a2+a3)+l2.*sin(a2); xx=[xx,x];

标注用元胞数组,可以用for循环产生,直接使用命令legend(元胞数组)如x=linspace(0,2*pi,10)for ii=1:3 lgstr=cell(1,3) for jj=1:3 y(:,jj)=jj*sin(x) lgstr{jj}=num2str(jj) end subplot(3,1,ii);plot(x',y) legend(lgstr)end

不太清楚你的程序具体怎样 如果前面没问题 只是画图 可以这样改 for Y1=-3.5:0.5:3.5 for i=1:length(Y1) Y(i)=f(Y1(i)) %循环里面依次算出各个Y(i) end plot(X,Y(i))%这里就不知道怎么写了..横坐标信息在矩阵X里面 hold on end

plot(u,y);这个语句有问题,因为u是长度已经固定了的,而y是随着循环的进行长度逐渐增大的,等到循环结束才和u的长度一样,改成plot(u(1:i),y);就可以了clcclear allu=0:0.1:10;leng=length(u);for i=1:leng if u(i)<=1 y(i)=u(i).^2; else y(i)=sqrt(u(i)); end plot(u(1:i),y); grid;hold on;end

可以.但是不建议,因为在循环中画图会极大降低程序执行的效率.建议把for循环中生成的数据都保存到矩阵中,循环结束后一起画图.

用两个变量呗,例如下面的x,用x0保存不变的那个值.x0=100; % 假设的一个值for i=1:10 x=x0; % 每次循环x都恢复成x0 disp(x) x=x+i; % 改变x的值 disp(x)end

matlab中有关控制循环的有三个命令,break,continue和return.break就是直接跳出该层循环 continue就是直接进入该层循环的下一次迭代 return就是直接退出程序或函数返回了 大概的关系如下 return>break>continue 由于return之后就直接退出程序了,因此带有return的多重循环最好是一个独立的函数,实现特定的功能,如果还需要接着完成某一任务,那么就写一新的函数,而不是在原函数上继续,否则return之后后面的代码就不执行了, 对于简单的跳出循环可能用这些命令就行了,那么对于复杂的循环跳跃就不好应付了.matlab不提供goto指令,因此可以用其他办法来迂回解决.

相关文档

matlab for循环画图
matlab循环语句画图
matlab循环画图并显示
matlab循环语句for绘图
matlab for语句plot
matlab for循环输出值
matlab 横坐标for循环作图
matlab for循环嵌套
mydy.net
5615.net
zhnq.net
ceqiong.net
5689.net
电脑版