24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1575  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

plxh

木虫 (正式写手)

[求助] Matlab绘图再求助

在帖子http://muchong.com/bbs/viewthread.php?tid=4354741中部分实现了绘图目标。感谢sogooda朋友!

利用sogooda同学给出的代码实现了画出如下效果的图。
现在有新的想法,用什么方式可以看到小方块  一个一个地方的变动过程呢?

用Matlab的GUI或者Real Time Workshop 或者S-Function?
本人新手,请各位同学不吝赐教!!
PS:mat文件里的数据是用把simulink里的数据用To Workspace导出到工作空间的。
效果图
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : matlab.mat
  • 2012-04-09 09:27:44, 9.33 K

» 本帖@通知

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
plxh: 金币+5, ★★★很有帮助, 这位兄弟谢谢你!你可能没看到。我要把三个数据回到一张图上,不过你这个很有帮助。 2012-04-10 10:17:04
CODE:
function aa

clear;clc;close all
load matlab3
for i=1:3;
    hold on;
    if i==1   %必须是用两个等号。
          figure1=figure('color','w')  
        eta12=eta1(1:5:end,:);

        x=eta12(:,2);
        y=eta12(:,1);
        % theta=eta1(:,3); % ?

        theta=pi/2-eta12(:,3);
        
        myr=linspace(0,0,length(x));
        myg=linspace(0,1,length(x));
        myb=linspace(0,0,length(x));
        for jj=1:length(x)   
           plot(x,y);hold on;
            plotSquare2(x(jj),y(jj),theta(jj),1/30,[myr(jj),myg(jj),myb(jj)]);
            axis equal
            pause(0.1)
    hold off;
        end
        colormap([myr', myg', myb'])
        colorbar
        


    elseif i==2
         figure1=figure('color','w')
        eta22=eta2(1:5:end,:);

        x=eta22(:,2);
        y=eta22(:,1);
        % theta=eta1(:,3); % ?

        theta=pi/2-eta22(:,3);
        
        myr=linspace(0,0,length(x));
        myg=linspace(0,1,length(x));
        myb=linspace(0,0,length(x));
        for jj=1:length(x)
            plot(x,y);hold on;
            plotSquare2(x(jj),y(jj),theta(jj),1/30,[myr(jj),myg(jj),myb(jj)]);
            axis equal
            pause(0.1)
    hold off;
        end
        colormap([myr', myg', myb'])
        colorbar
        
        
    elseif i==3        
          figure1=figure('color','w')
        eta32=eta1(1:5:end,:);

        x=eta32(:,2);
        y=eta32(:,1);
        % theta=eta1(:,3); % ?

        theta=pi/2-eta32(:,3);
        
        myr=linspace(0,0,length(x));
        myg=linspace(0,1,length(x));
        myb=linspace(0,0,length(x));
        for jj=1:length(x)   
            plot(x,y);hold on;
            plotSquare2(x(jj),y(jj),theta(jj),1/30,[myr(jj),myg(jj),myb(jj)]);
            axis equal
            pause(0.1)
    hold off;
        end
        colormap([myr', myg', myb'])
        colorbar
        
    end
   
    end
   
   


function plotSquare2(x0,y0,theta,a,mycolor)
xs=[-2*a,-2*a,2*a,3*a,2*a,-2*a];
ys=[a,-a,-a,0,a,a];

xy=[cos(theta),-sin(theta);
    sin(theta),cos(theta)]*[xs;ys] ;
fill(xy(1,:)+x0,xy(2,:)+y0,mycolor)

复制到editor中保存为.m文件,点击run运行
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
6楼2012-04-10 10:04:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

sogooda

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与! 2012-04-09 23:18:55
plxh: 金币+5, ★★★很有帮助, 非常感谢!请看楼下回复内容! 2012-04-10 06:59:19
在函数文件的最后加一句
pause
试试。
2楼2012-04-09 23:06:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sogooda

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★
xiegangmai: 金币+1, 谢谢参与! 2012-04-09 23:19:11
plxh: 金币+5, ★★★很有帮助 2012-04-10 09:32:06
或者自动一点儿用
pause(1)
3楼2012-04-09 23:09:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

plxh

木虫 (正式写手)

引用回帖:
3楼: Originally posted by sogooda at 2012-04-09 23:09:03:
或者自动一点儿用
pause(1)

哥们,谢谢你!我还没试呢,但我想这样是在一张图上保留原菱形再间断显示后面的吧?   我想实现的是菱形运动过程,不保留以前的位置。   是不是可以每次汇图就保存图片文件,然后顺序播放就可得到动画过程?   这样的话保存图片的命令怎么写呢?求助!
4楼2012-04-10 06:56:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见