function scatterbar(x,y,z,scale)

%   根据散点数据绘制3维彩色柱状图

%   scatterbar(x,y,z,scale)  x,y,z是实值数组,用来指定柱子顶面中心点三维坐标。

%              scale是大于0的标量,用来指定柱子的粗细,scale越大,柱子越细,默

%              认情况下根据坐标点自动计算柱子的粗细。

%

%   CopyRight:xiezhh(谢中华)

%   2011.10.31

%   Example:

%       [x,y] = meshgrid(-6:6,-3:0.5:3);

%       z = mvnpdf([x(:),y(:)],[0,0],[4,0;0,1]);

%       scatterbar(x,y,z)

%       scatterbar(x,y,z,50);

% 输入参数类型判断

if nargin < 3

error('至少需要三个输入参数');

end

if ~isreal(x) || ~isreal(y) || ~isreal(z)

error('前三个输入应为实值数组');

end

% 提取x,y,z等长部分的元素

x = x(:);

y = y(:);

z = z(:);

n = min([numel(x) numel(y) numel(z)]);

x = x(1:n);

y = y(1:n);

z = z(1:n);

% 计算极差和差分值

rx = range(x);

ry = range(y);

dx = abs(diff(x));

dx = min(dx(dx>0));

dy = abs(diff(y));

dy = min(dy(dy>0));

% 自动计算柱子的粗细

if nargin == 3

if ~isempty(dx)

hx = dx/2;

else

hx = 0.5;

end

if ~isempty(dy)

hy = dy/2;

else

hy = 0.5;

end

end

% 根据用户输入参数scale计算柱子的粗细

if nargin == 4

if ~isreal(scale) || scale < 0

error('第四个输入应为正的标量');

end

if rx == 0 && ry == 0

rx = 0.5*scale;

ry = rx;

elseif rx == 0 || ry == 0

rx = max(rx,ry);

ry = rx;

end

hx = rx/scale;

hy = ry/scale;

end

% 通过循环绘制三维彩色柱状图

figure

hold on

Xp = [];

Yp = [];

Zp = [];

for i = 1:n

[xp,yp,zp] = Vertices(x(i),y(i),z(i));

Xp = [Xp;xp];

Yp = [Yp;yp];

Zp = [Zp;zp];

end

%通过surf函数生成彩色的立方体盒子

h = surf(Xp,Yp,Zp,Zp,'FaceColor','interp');

%set(h,'FaceAlpha',0.25);    %设置立方体盒子透明度

grid on

view(3)

hold off

%--------------------------------------------------

% 求柱子顶点的子函数

%--------------------------------------------------

function [xp,yp,zp] = Vertices(x,y,z)

% 由长方体底面中心坐标求顶点坐标

xp = [x-hx x-hx x+hx x+hx x-hx

x-hx x-hx x+hx x+hx x-hx

x-hx x-hx x+hx x+hx x-hx

x-hx x-hx x+hx x+hx x-hx

x    x    x    x    x

NaN  NaN  NaN  NaN  NaN];

yp = [y-hy y+hy y+hy y-hy y-hy

y-hy y+hy y+hy y-hy y-hy

y-hy y+hy y+hy y-hy y-hy

y-hy y+hy y+hy y-hy y-hy

y    y    y    y    y

NaN  NaN  NaN  NaN  NaN];

zp = [repmat(linspace(0,z,4)',[1,5]);z z z z z;NaN NaN NaN NaN NaN];

end

end

matlab矩阵画柱状三维,[原创]利用MATLAB绘制三维彩色柱状图相关推荐

  1. Matlab画柱状、饼状填充图(亲测可用)

    Matlab画柱状.饼状填充图 1.     把下列代码保存为名为"applyhatch.m"的文件 function applyhatch(h,patterns,colorlis ...

  2. 利用matlab命令画出以下信号的波形,MATLAB实验报告

    文档收集于互联网,已重新整理排版.word 版本可编辑,有帮助欢迎下载支持. 1文档来源为:从网络收集整理.word 版本可编辑. 实验一 名称:连续时间信号分析 姓名:王嘉琦 学号:0636 班级: ...

  3. python画柱状图-Python画柱状统计图操作示例【基于matplotlib库】

    本文实例讲述了Python画柱状统计图操作.分享给大家供大家参考,具体如下: 一.工具:python的matplotlib.pyplot 库 二.案例: import matplotlib.pyplo ...

  4. matlab可以画3d图吗,如何用matlab画3d图

    MATLAB三维绘图解读_自考_成人教育_教育专区.MATLAB 上次课内容回顾 1. 2. ? ? ? 3. 4. 5. MATLAB二维绘图 离散函数和数据的可视化; 二维曲线和图形 plot.. ...

  5. matlab读Excel表格数据画图,matlab读Excel表格数据画图-如何利用matlab根据excel表格里面的数据画图...

    用matlab读取excel数据并把对应的数据分别画出曲线图 1.第我们首先需要找到需要导excel表格,这里表格需要是office,其它入有问题,我们可以使用电脑自带的2003版本office 2. ...

  6. 如何利用matlab做BP神经网络分析(包括利用matlab神经网络工具箱)

    如何利用matlab做BP神经网络分析(包括利用matlab神经网络工具箱) 转载:https://blog.csdn.net/xgxyxs/article/details/53265318 最近一段 ...

  7. matlab 画三条曲线,如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?

    文章目录 0 前言 1 plot3函数 1.1 plot3函数的基本用法 1.2 plot3(x,y,z)函数参数的变化形式 1.3 含多组输入参数的plot3函数 1.4 含选项的plot3函数 2 ...

  8. matlab几何体,[原创]利用MATLAB绘制管状几何体

    function [X,Y,Z] = TubeLike(x,y,z,r) % 绘制三维管道型立体 % TubeLike(x,y,z)    绘制三维管道型几何体,输入参数x,y,z分别为管道中心线各点 ...

  9. matlab 三维立体图,利用matlab将三维数据画成三维立体图

    利用matlab将三维数据画成三维立体图 发布时间:2018-08-20 14:13, 浏览次数:1367 , 标签: matlab 首先先分析对象.将数据利用matlab画出图,最开始是导入数据,然 ...

最新文章

  1. 服务器维护日常需做哪些工作?
  2. 语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南
  3. 函授计算机大专自我鉴定100字,函授大学毕业自我鉴定100字(精选5篇)
  4. 手把手教你在Modelarts平台上进行视频推理
  5. 未处理System.BadImageFormatException,试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
  6. Summernote个性化定制使用帮助(三)
  7. 鸿蒙音响怎么调,好音质是调出来的 大师教你咋调试音响
  8. php 死链查询,seo网站死链解决方法 死链查询检测工具
  9. Java代码调用第三方接口发送短信
  10. 【从Northwind学习数据库】数据更新
  11. 微信支付商户平台,企业付款,企业向个人付款接口总结
  12. 线段树 从入门到进阶(超清晰,简单易懂)
  13. 【这很AI】是福是祸?科学家利用AI翻译狗的语言,人狗对话将成可能
  14. 2016年的年终总结吧
  15. fastdfs存储空间不足报错:错误码:28,错误信息:没有足够的存储空间
  16. vue做移动端适配最佳解决方案,亲测有效
  17. mc33063,mc34063发热问题
  18. EFL+WEBKIT
  19. 【渝粤教育】广东开放大学 学前教育研究方法 形成性考核 (23)
  20. 移动距离 奇妙的数字

热门文章

  1. Babylon.js 拾取坐标的方法
  2. 电子秤结构分析与设计
  3. node.js毕业设计安卓考研学习APP(程序+APP+LW)
  4. 强引用与弱引用(不太懂,不过文章形容的不错)
  5. winformbutton边框怎么改_winform设置button的边框颜色,或取消边框颜色,不显示边框...
  6. 几种常见的字符串倒序的方法。
  7. m0n0防火墙的安装(11)
  8. csharp(CS1519)
  9. 计算机四级网络工程师考试视频及软件
  10. 聊聊太阳能光伏发电系统的防雷设计