matlab怎么用循环画图

for k=1:60
figure(k)
plot(eval(str2mat(a(k))));
hold on
plot(jizhunxian(k,:));%该工况下煤耗的基准值
title('供电标准煤耗历史曲线图');
xlabel(['工况',num2str(k)]);
ylabel('供电标准煤耗');
hold off
end
我想同时画60幅图,但是现在总是只能出一幅图,不知道是哪的问题,希望高手帮我看看代码,本人是菜鸟,希望高手帮帮忙了,最好详细点,谢谢

matlab循环画图只需要画出一幅然后编程循环即可完成。
参考信息:
for f=1:1000000;
w=2*pi*f; l=0.1e-3;c=0.25e-9;R=50;v=10e-10;
vg=R./(sqrt(R.^2+(w.*l-1./(w.*c)).^2)).*v;
plot(f,vg)
hold on;
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-09
本身循环画图是没有问题的
最后60幅图都画出来,不过会叠在一起,拖开就看到

如果运行中出现问题,只能画一幅

那么可能出错的就是
plot(eval(str2mat(a(k))));
plot(jizhunxian(k,:));
这两句

就看你a 和jizhuanxian这两个变量里的内容是什么,有没有错误
特别是eval(str2mat(a(k)))这个,猜不到你a中是什么数据,为什要这样画图
不知道这里面有没有潜在的错误追问

我的a是一个60x1的元胞,每一个元胞里面存有一个矩阵,其实就是想把每一个矩阵里面存的数画成曲线了

追答

直接
plot(a{i})就可以了

本回答被网友采纳
第2个回答  2014-12-09
覆盖了,把循环移位以下就可以了追问

能说的具体点吗?

追答

好比你在一张纸上画了一个自画像,然后你又画的了第二张(3、4。。。),那么第二张像就把第一张遮住了。
所以你只能得到一张图

相似回答