matlab 三维画图总结

[复制链接]
 楼主| gaoyang9992006 发表于 2017-6-22 16:29 | 显示全部楼层 |阅读模式
1.画函数的三维图,如:Z(X,Y)=2*X.*exp(-X.^2-Y.^2)+1;
  1. close all;
  2. [X,Y]=meshgrid(-2:0.5:2,-2:0.5:2);%生成坐标轴
  3. Z=2*X.*exp(-X.^2-Y.^2)+1;%Z是X,Y的函数
  4. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  5. num=0;
  6. num=num+1;
  7. subplot(2,3,num);
  8. plot3(X,Y,Z);
  9. axis([-3 3 -3 3 0 2]);%限定显示的范围
  10. xlabel('x轴');%x轴坐标
  11. ylabel('y轴');%y轴坐标
  12. zlabel('z轴');%z轴坐标
  13. title('http://blog.csdn.net/nuptboyzhb/   figure(1)');%标题
  14. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  15. num=num+1;
  16. subplot(2,3,num);
  17. mesh(X,Y,Z);
  18. axis([-3 3 -3 3 0 2]);%限定显示的范围
  19. xlabel('x轴');%x轴坐标
  20. ylabel('y轴');%y轴坐标
  21. zlabel('z轴');%z轴坐标
  22. title('http://blog.csdn.net/nuptboyzhb/   figure(2)');%标题
  23. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  24. num=num+1;
  25. subplot(2,3,num);
  26. meshc(X,Y,Z);
  27. axis([-3 3 -3 3 0 2]);%限定显示的范围
  28. xlabel('x轴');%x轴坐标
  29. ylabel('y轴');%y轴坐标
  30. zlabel('z轴');%z轴坐标
  31. title('http://blog.csdn.net/nuptboyzhb/   figure(3)');%标题
  32. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  33. num=num+1;
  34. subplot(2,3,num);
  35. surf(X,Y,Z);
  36. axis([-3 3 -3 3 0 2]);%限定显示的范围
  37. xlabel('x轴');%x轴坐标
  38. ylabel('y轴');%y轴坐标
  39. zlabel('z轴');%z轴坐标
  40. title('http://blog.csdn.net/nuptboyzhb/   figure(4)');%标题
  41. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  42. num=num+1;
  43. subplot(2,3,num);
  44. meshz(X,Y,Z);
  45. axis([-3 3 -3 3 0 2]);%限定显示的范围
  46. xlabel('x轴');%x轴坐标
  47. ylabel('y轴');%y轴坐标
  48. zlabel('z轴');%z轴坐标
  49. title('http://blog.csdn.net/nuptboyzhb/   figure(5)');%标题
  50. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  51. num=num+1;
  52. subplot(2,3,num);
  53. surf(X,Y,Z);
  54. hold on;
  55. stem3(X,Y,Z,'r');%画竖线
  56. axis([-3 3 -3 3 0 2]);%限定显示的范围
  57. xlabel('x轴');%x轴坐标
  58. ylabel('y轴');%y轴坐标
  59. zlabel('z轴');%z轴坐标
  60. title('http://blog.csdn.net/nuptboyzhb/   figure(6)');%标题
1359628661_7014.png
 楼主| gaoyang9992006 发表于 2017-6-22 16:30 | 显示全部楼层
2.画矩阵的三维图
  1. clc;
  2. clear all;
  3. close all;
  4. X=[0 1 2 3 4 5 6 7 8 9];
  5. Y=[0 1 2 3 4 5 6 7 8 9];
  6. for i=1:1:length(X)
  7.     for j=1:1:length(Y)
  8.         Z(i,j)=mod(i*j*rand(1),9);
  9.     end
  10. end
  11. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  12. num=0;
  13. num=num+1;
  14. subplot(2,3,num);
  15. plot3(X,Y,Z);
  16. axis([0 9 0 9 0 9]);%限定显示的范围
  17. xlabel('x轴');%x轴坐标
  18. ylabel('y轴');%y轴坐标
  19. zlabel('z轴');%z轴坐标
  20. title('http://blog.csdn.net/nuptboyzhb/   figure(1)');%标题
  21. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  22. num=num+1;
  23. subplot(2,3,num);
  24. mesh(X,Y,Z);
  25. axis([0 9 0 9 0 9]);%限定显示的范围
  26. xlabel('x轴');%x轴坐标
  27. ylabel('y轴');%y轴坐标
  28. zlabel('z轴');%z轴坐标
  29. title('http://blog.csdn.net/nuptboyzhb/   figure(2)');%标题
  30. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  31. num=num+1;
  32. subplot(2,3,num);
  33. meshc(X,Y,Z);
  34. axis([0 9 0 9 0 9]);%限定显示的范围
  35. xlabel('x轴');%x轴坐标
  36. ylabel('y轴');%y轴坐标
  37. zlabel('z轴');%z轴坐标
  38. title('http://blog.csdn.net/nuptboyzhb/   figure(3)');%标题
  39. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  40. num=num+1;
  41. subplot(2,3,num);
  42. surf(X,Y,Z);
  43. axis([0 9 0 9 0 9]);%限定显示的范围
  44. xlabel('x轴');%x轴坐标
  45. ylabel('y轴');%y轴坐标
  46. zlabel('z轴');%z轴坐标
  47. title('http://blog.csdn.net/nuptboyzhb/   figure(4)');%标题
  48. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  49. num=num+1;
  50. subplot(2,3,num);
  51. meshz(X,Y,Z);
  52. axis([0 9 0 9 0 9]);%限定显示的范围
  53. xlabel('x轴');%x轴坐标
  54. ylabel('y轴');%y轴坐标
  55. zlabel('z轴');%z轴坐标
  56. title('http://blog.csdn.net/nuptboyzhb/   figure(5)');%标题
  57. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  58. num=num+1;
  59. subplot(2,3,num);
  60. surf(X,Y,Z);
  61. hold on;
  62. stem3(X,Y,Z,'r');%画竖线
  63. axis([0 9 0 9 0 9]);%限定显示的范围
  64. xlabel('x轴');%x轴坐标
  65. ylabel('y轴');%y轴坐标
  66. zlabel('z轴');%z轴坐标
  67. title('http://blog.csdn.net/nuptboyzhb/   figure(6)');%标题
2.png
 楼主| gaoyang9992006 发表于 2017-6-22 16:32 | 显示全部楼层

3.画矩阵的颜色深度图

graycolor.m

  1. %filename:graycolor.m
  2. %郑海波 2013-01-31
  3. %http://blog.csdn.net/nuptboyzhb/
  4. %原理:灰度图像的伪彩色处理
  5. %值越大,显示的颜色越蓝,越小,显示的颜色越红!
  6. %参数:newbuf必须使二维数组或矩阵
  7. function graycolor(newbuf);
  8. min_n=min(min(newbuf));
  9. max_n=max(max(newbuf));
  10. newbuf=newbuf./(max_n-min_n)*255;
  11. [M N]=size(newbuf);
  12. for i=1:1:M
  13.     for j=1:1:N
  14.         R(i,j)=GrayColorR(newbuf(i,j));
  15.         G(i,j)=GrayColorG(newbuf(i,j));
  16.         B(i,j)=GrayColorB(newbuf(i,j));
  17.     end
  18. end
  19. img(1:1:M,1:1:N,1)=R(1:M,1:N);
  20. img(1:1:M,1:1:N,2)=G(1:M,1:N);
  21. img(1:1:M,1:1:N,3)=B(1:M,1:N);
  22. imshow(uint8(img));
  23. function r=GrayColorR(gray)
  24. r=0;
  25. if gray>=170
  26.     r=255;
  27. end
  28. if gray>=128&&gray<=170
  29.     r=255/42*(gray-128);
  30. end
  31. return;
  32. function g=GrayColorG(gray)
  33. g=0;
  34. if gray>=84&&gray<=170
  35.     g=255;
  36. end
  37. if gray<=84
  38.     g=255/84*gray;
  39. end
  40. if gray>=170&&gray<=255
  41.     g=255/85*(255-gray);
  42. end
  43. return;
  44. function b=GrayColorB(gray)
  45. b=0;
  46. if gray<=84
  47.     b=255;
  48. end
  49. if gray>=84&&gray<=128
  50.     b=255/44*(128-gray);
  51. end
  52. return;

函数的调用:


  1. [X,Y]=meshgrid(-2:0.01:2,-2:0.01:2);%生成坐标轴
  2. Z=2*X.*exp(-X.^2-Y.^2)+1;%Z是X,Y的函数
  3. graycolor(Z);
  4. title('http://blog.csdn.net/nuptboyzhb/');%标题

3.png


 楼主| gaoyang9992006 发表于 2017-6-22 16:33 | 显示全部楼层
另外,在\matlab*****\toolbox\matlab\demos\graf3d.m中文件,有更加详细的介绍。界面如下:
4.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2046

主题

16351

帖子

221

粉丝
快速回复 在线客服 返回列表 返回顶部