关于matlab在for循环中画图

for j=1:14
a(j,1:BLOCK)=s(((j-1)*BLOCK+1):(j*BLOCK));
figure;
subplot(1,2,1);
[f,X]=hist(a(j,1:BLOCK),xout);
hist(a(j,1:BLOCK),xout);
subplot(1,2,2);
[fina,aii] = ksdensity(a(j,1:BLOCK));
plot(ai,fina,'*r');
y=y+f;
end

在这段程序中,我需要将导入的s文件中的数据分块画出频数直方图,每块中有100个数据,即为BLOCK的值,我一共有1400个数据,所以j=1:14,想来应该有14张图啊,但是为什么这段程序出来只有1张图呢,求高手讲解一下,菜鸟谢谢啦!

把figure;改为figure(j);
不然每画一遍之前的就被覆盖代替了。
相关语法是figure(h),其中h表示画的图形对象的句柄,若该句柄已存在,相应的图形框则被设为当前图形对象;若此句柄不存在,则将以该值为句柄,新建一个图形对象。另h需为整数值。追问

谢谢您的回答!因为我在循环之前还有两张图,因此我改成了j+2,但是包括前面的还是只有三张图,还是不行,这是为什么呢?

追答

循环中生成的那张图正确吗,是不是有其他错误出现导致循环被中断了?

温馨提示:内容为网友见解,仅供参考
无其他回答

关于matlab在for循环中画图
把figure;改为figure(j);不然每画一遍之前的就被覆盖代替了。相关语法是figure(h),其中h表示画的图形对象的句柄,若该句柄已存在,相应的图形框则被设为当前图形对象;若此句柄不存在,则将以该值为句柄,新建一个图形对象。另h需为整数值。

MATLAB在for语句中使用plot画图,画出来只有点不是线,输出的y在前面的语...
在for语句中使用plot画图,画出来是只有点。因为plot(SNR,BER,'-ro')中的BER变量为单一数值。所以如想绘画出直线段的话,则应考虑数值变量,即BER变量为一数组变量。因此,题主的代码应作如下改动:1、for循环语句头改动,即为 for i=0:1:15 2、BER=nerr\/(cols-rows)代码改动,即为 BER(i...

Matlab用for循环语言画出以下图形,求程序怎么编,就是运行时候要有这个画...
end 程序运行之后,在matlab主界面中回车会让你输入线的终点,再按任意键图形就出来了,是一步一步出来的,按一下出来一笔。出来你要求的图形需要Xe=Ye

matlab 在for循环中画不同颜色的图怎么弄?
clear all;c=colormap(lines(3));x=0:0.1:6.28;for ii=1:3 y1=sin(ii*x);plot(x,y1,'color',c(ii,:));hold on;end 用colormap给出的标准色会比较好看,如果是画二维曲线,可以用lines,比较清晰适合贴论文,个人喜好

matlab中for循环的用法例子有哪些?
如下图:for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。注意事项:1、for循环中的变量可以是一个也可以是多个。2、for循环中语句可以为语句体, 语句体外加大括号"{}"将参加循环的语句括起来。

MATLAB for循环每循环一次产生一条曲线,怎么画出每条曲线?
MATLAB绘制曲线的函数为plot().在for循环中每次循环画一条曲线,需要在for语句中,添加hold on语句。这样做的目的是为了保持每次循环画一条曲线,N次循环画出N条曲线。

matlab for循环画图
for循环流程图 执行过程为:求解表达式1;求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步;求解表达式3;转回上面第2步继续执行;循环结束,执行 for 语句下面的语句。执行过程中,“表达式1”只执行一次,循环是在“表达式2”“...

matlab使用for循环绘制曲线图时,如何自定义曲线颜色?
matlab使用for循环绘制曲线图,自定义每个曲线图的颜色,可以使用plot(x,y,'--','color',rand(1,3));这样的代码实现,因为代码的外层for循环只跑4次,画4次plot,在开头加一个clf擦除旧图就可。效果图如下 代码修改列出如下:clc;clear all;clf;syms rp r A0 B0 ...

在matlab中用for循环画曲面图(plot3命令)---一个具体问题
l2 1x1 8 double l3 1x1 8 double x 1x51 408 double y 1x51 408 double z 1x51 408 double 数组才能画图。

在线等!!!matlab如何把for循环生成的数据画在一张图上
对每组(Tc, Tm),都能解出两条曲线,这称为一组。2. plot(t, X); 这一句话就可以同时绘制出同一组内的两条曲线,不必分开画。3. 出于调试的方便,建议把legend那一段先去掉。4. 如果没有特殊的必要,建议把所有曲线全部计算完毕后,再另起一个for循环画图。这样一边算一边画效率会比较低。

相似回答