查看: 157|回复: 5|关注: 0
打印 上一主题 下一主题

快乐扑克全天在线计划: [已解决] 使用for循环的code生成的图,怎么是这些图在合并在一个图里面

[复制链接]

新手

19 麦片

财富积分


快乐扑克3如何跟对子 www.vqxik.tw 050


10

主题

24

帖子

0

最佳答案
跳转到指定楼层
1#
一个txt文档里面的矩阵z=[1,4,9,16,25,36,49,36,25,16,8,1];                                     [1, 5, 10, 17, 26, 38, 26, 17, 10, 9, 7, 1];
                                     [1,8,18,30,40,30,18,8,7,4,3,1];   通过matlab打开保存为矩阵a。


for i=1:3   %矩阵a的行数
        x=[1,2,3,4,5,6,7,8,9,10,11,12];
        z1=a(i,:);
        p1=polyfit(x, z1, 5);
        fun = @(x) -polyval(p1,x);
        x_max = fminbnd(fun,x(1),x(end))
        y1_max=polyval(p1, x_max)
        figure; hold on;
        plot(x,z1,'*');
        fplot(@(x) polyval(p1,x),[x(1) x(end)],':');
        plot(x_max,polyval(p1,x_max),'o');
        legend('data','fit','max');
end

用了这个code之后会生成3个不同的图。 请问怎么通过写code把这三个图合并在一个图里面??? 手动合并图我会,但是因为后面还涉及到其他运算,这里需要通过code自动生成一个图包含这三条曲线。

MATLAB 基础讨论
版块优秀回答者

中级

620 麦片

财富积分


5001500


0

主题

278

帖子

47

最佳答案
  • 关注者: 7
2#
发表于 2019-11-21 21:20:13 | 只看该作者
本帖最后由 20141303 于 2019-11-21 21:21 编辑

添加一句代码
a=[1,4,9,16,25,36,49,36,25,16,8,1;
    1, 5, 10, 17, 26, 38, 26, 17, 10, 9, 7, 1;
     1,8,18,30,40,30,18,8,7,4,3,1];
for i=1:3   %矩阵a的行数
        x=[1,2,3,4,5,6,7,8,9,10,11,12];
        z1=a(i,:);
        subplot(3,1,i)
        p1=polyfit(x, z1, 5);
        hold on
        fun = @(x) -polyval(p1,x);
        x_max = fminbnd(fun,x(1),x(end))
        y1_max=polyval(p1, x_max)
        hold on
        plot(x,z1,'*');
        fplot(@(x) polyval(p1,x),[x(1) x(end)],':');
        plot(x_max,polyval(p1,x_max),'o');
        legend('data','fit','max');
end
所得图发生改变(第一个图修改后,后一个图修改前)

新手

19 麦片

财富积分


050


10

主题

24

帖子

0

最佳答案
3#
 楼主| 发表于 2019-11-21 21:23:32 | 只看该作者
20141303 发表于 2019-11-21 21:20
添加一句代码
a=[1,4,9,16,25,36,49,36,25,16,8,1;
    1, 5, 10, 17, 26, 38, 26, 17, 10, 9, 7, 1;

谢谢你的回答,我可能表述没有清楚。 我想说的是,怎么把这三个图合并成在同一个坐标系下的一个图。

MATLAB 基础讨论
版块优秀回答者

中级

620 麦片

财富积分


5001500


0

主题

278

帖子

47

最佳答案
  • 关注者: 7
4#
发表于 2019-11-21 21:29:54 | 只看该作者 |此回复为最佳答案
在end前加个hold on即可得图

新手

19 麦片

财富积分


050


10

主题

24

帖子

0

最佳答案
5#
 楼主| 发表于 2019-11-21 22:21:36 | 只看该作者
20141303 发表于 2019-11-21 21:29
在end前加个hold on即可得图
  1. for i=1:3 %矩阵a的行数
  2.         x=[1,2,3,4,5,6,7,8,9,10,11,12];
  3.         z1=a(i,:);
  4.         p1=polyfit(x, z1, 5);
  5.         fun = @(x) -polyval(p1,x);
  6.         x_max = fminbnd(fun,x(1),x(end))
  7.         y1_max=polyval(p1, x_max)
  8.         figure; hold on;
  9.         plot(x,z1,'*');
  10.         fplot(@(x) polyval(p1,x),[x(1) x(end)],':');
  11.         plot(x_max,polyval(p1,x_max),'o');
  12.         legend('data','fit','max'); hold on
  13. end
复制代码
是这样的吗? 可我得到还是三个独立的图······

新手

19 麦片

财富积分


050


10

主题

24

帖子

0

最佳答案
6#
 楼主| 发表于 2019-11-21 22:27:59 | 只看该作者
20141303 发表于 2019-11-21 21:29
在end前加个hold on即可得图

谢谢,我自己看漏了一个hold on,成功了,感谢您!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 快乐扑克3如何跟对子 返回列表