24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1571  |  回复: 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

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
plxh: 金币+5, 有帮助, 首先谢谢斑竹!但是实现的效果不对了。在一起实现,但半径是不一样的,这个我自己做到了。现在我的关注点是colorbar,首先是ylabel,其次是'YTickLabel',现在竟然在最大值700之后又出现了0,100.晕死~~ 2012-04-10 10:53:38
CODE:
function aa

clear;clc;close all
load matlab3
        eta12=eta1(1:5:end,:);

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

        theta1=pi/2-eta12(:,3);
         
        eta22=eta2(1:5:end,:);

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

        theta2=pi/2-eta22(:,3);
         
        eta32=eta1(1:5:end,:);

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

        theta3=pi/2-eta32(:,3);
        
        myr=linspace(0,0,length(x));
        myg=linspace(0.5,1,length(x));
        myb=linspace(0,0,length(x));
        for jj=1:length(x)   
            plot(x,y);hold on;colormap([myr', myg', myb'])
            plotSquare2(x(jj),y(jj),theta1(jj),1/30,[myr(jj),myg(jj),myb(jj)]);
            plotSquare2(x(jj),y(jj),theta2(jj),1/30,[myr(jj),myg(jj),myb(jj)]);
            plotSquare2(x(jj),y(jj),theta3(jj),1/30,[myr(jj),myg(jj),myb(jj)]);
             colorbar
            axis([min(x)-1 max(x)+1 min(y)-1 max(y)+1])
            pause(0.05)
            hold off;
        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)

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.
9楼2012-04-10 10:43:26
已阅   回复此楼   关注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的回帖
信息提示
请填处理意见