加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab 中如何把矩阵对应成一个有颜色的网格[转载]

(2014-07-02 21:30:46)
标签:

matlab

分类: matlab
想用一个 N×N 网格的颜色深浅,来对应表达 N 阶矩阵中数值的大小。
现在矩阵中数字全部是非负数。要求(1)数字零用空白表示;(2)正数用红色表示,而且数字越大,颜色越深。


[0.2920 0.5625 0.2009 0.4740 0.9561 0.3756 0.7694 0.4906 ;
0.8580 0.6166 0.2731 0.9090 0.5955 0.1662 0.4442 0.4093 ;
0.3358 0.1133 0.6262 0.5962 0.0287 0.6206 0.4635 ;
0.6802 0.5369 0.3290 0.8121 0.8386 0.9517 0.6109 ;
0.0534 0.7546 0.0595 0.4782 0.6101 0.4516 0.6400 0.0712 ;
0.3567 0.7911 0.5972 0.7015 0.9566 0.2473 0.3143 ;
0.4983 0.8150 0.2713 0.1614 0.0922 0.1472 0.3527 0.6084 ;
0.4344 0.6700 0.4091 0.8295 0.4249 0.8699 0.1750 ;]
gridcolor(p) 
运行结果: 
自定义函数gridcolor
function gridcolor(p)
[m n] size(p);
round(1+127*p/max(p(1:end)));
flipud(p);
0:m-1;
0:n-1;
[X,Y] meshgrid(x,y);
hmap [ones(127,1) linspace(0.5,0,127)' zeros(127,1)];
hmap [[1 1];hmap];
for 1:m
    for 1:n
        subfun(i, j, X(i,j),Y(i,j),hmap(p(i,j), :));
    end  
end
function subfun(m,n,x0,y0,c)
[x0 x0;x0 x0+1;x0+1 x0+1];
[y0-1 y0-1;y0 y0-1;y0 y0];
[1 1;1 1;1 1];
tcolor(1,1,1:3) c;
tcolor(1,2,1:3) c;
patch(x,y,z,tcolor);
set(h,'EdgeColor','none');

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有