matlab 按颜色画网格bar3 不同于surf,pcolor(儿子的papa)
2015-08-05 16:59
447 查看
clear all clc close all [x,y,z]=peaks(60); h=bar3(z,1) for i = 1:length(h) zdata = get(h(i),'ZData'); set(h(i),'CData',zdata) % Add back edge color removed by interpolating shading set(h,'EdgeColor','w') alpha(h,0.9) end axis equal grid off view(0,-90) hidden off colorbar % axis off surf(z,'edgecolor','w') axis equal view(0,90) hidden off colorbar
之前,画3D的平面都是用surf,然后再view(0,90)
一个小问题,当数据维数不大的时候,无太多差异。
这是两组60*60的数据,上面是bar3,下面是surf。
当数据比较少的时候,如果只有6*6
差异就明显了,上图bar3,每行有6个格,下图surf,第行有5个格,是两个值的差异来画的。
所以,当数据多的时候,或是只关注曲面的变化形势时,用surf没问题,esle,如果要说明一个图有多少个点,比如神经网络的节点个数,则最好使用bar3。
更新:
col=z; h=imagesc(col); axis equal axis tight % k=[0 max(z(:))-min(z(:))] k=[min(z(:)) max(z(:))] colormap(jet) caxis(k); view(0,90) colorbar
又更新:
02-Mar-2016 14:13:41
每次用surf画图都少一行,少一列,也不是那个事儿.
于是,写了一个小函数.生成新的x,y,z,可以直接surf,然后,维数还是正确的.
function [ X,Y,z_new ] = fun_mm_shift( z ) %UNTITLED Summary of this function goes here % Detailed explanation goes here [m,n]=size(z); [X,Y]=meshgrid([1:(n+1)]-0.5,[1:(m+1)]-0.5); tm=z; tm=[z;z(end,:)]; z_new=[tm';tm(:,end)']'; end
把z扔里面.就出来对应的新的x,y,z了.老好用了.
相关文章推荐
- Matlab--随机机数的产生
- Matlab 之meshgrid, interp, griddata 用法和实例
- Matlab & C++ 混合编程mex文件的编写与调试
- VS2010 C#中调用matlab2014a生成的dll的几个问题
- [ZT] matlab中plot画图参数的设置
- matlab整理
- matlab中global的用法
- Matlab--三维图形
- c++调用Matlab引擎编程(用于画图,数值计算)
- C++和MATLAB混合编程 mwArray 结构体传入
- 《MATLAB在语音信号分析和合成中的应用》随书附带程序下载 程序打不开
- matlab结果输出到文本的方法
- [win8.1 64位] MATLAB导出控制系统的ADAMS联合仿真的实践 [二]
- [win8.1 64位] MATLAB导出控制系统的ADAMS联合仿真的实践 [一]
- Matlab 几种卷积的实现与比较(conv与filter,conv2与filter2)
- Matlab字典学习工具
- C/C++调用matlab
- Ubuntu14.04安装Matlab2014a
- MATLAB 归一化 函数用法以及实例
- Matlab中配置LibSVM的操作步骤