关于matlab在for循环中画图

问题描述:

关于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张图呢,求高手讲解一下,菜鸟谢谢啦!
1个回答 分类:综合 2014-10-15

问题解答:

我来补答
把figure;改为figure(j);
不然每画一遍之前的就被覆盖代替了.
相关语法是figure(h),其中h表示画的图形对象的句柄,若该句柄已存在,相应的图形框则被设为当前图形对象;若此句柄不存在,则将以该值为句柄,新建一个图形对象.另h需为整数值.
再问: 谢谢您的回答!因为我在循环之前还有两张图,因此我改成了j+2,但是包括前面的还是只有三张图,还是不行,这是为什么呢?
再答: 循环中生成的那张图正确吗,是不是有其他错误出现导致循环被中断了?
 
 
展开全文阅读
剩余:2000