经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » MATLAB » 查看文章
MATLAB中“repmat”与“cat”函数的用法
来源:cnblogs  作者:凯鲁嘎吉  时间:2019/4/22 9:00:13  对本文有异议

MATLAB中“repmat”与“cat”函数的用法

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

1. repmat函数

  1. >> z=repmat(5,2,3)
  2.  
  3. z =
  4.  
  5. 5 5 5
  6. 5 5 5
  7.  
  8. >> y=repmat([6,5;7,9],3,4)
  9.  
  10. y =
  11.  
  12. 6 5 6 5 6 5 6 5
  13. 7 9 7 9 7 9 7 9
  14. 6 5 6 5 6 5 6 5
  15. 7 9 7 9 7 9 7 9
  16. 6 5 6 5 6 5 6 5
  17. 7 9 7 9 7 9 7 9
  18.  
  19. >> x=repmat([1:5;2:6],2,3)
  20.  
  21. x =
  22.  
  23. 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
  24. 2 3 4 5 6 2 3 4 5 6 2 3 4 5 6
  25. 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
  26. 2 3 4 5 6 2 3 4 5 6 2 3 4 5 6

repmat函数中第一个值是元素(或向量、矩阵)的值,第二个值为行数,第三个为列数。

z=repmat(5,2,3),生成2行3列元素为5的矩阵。

y=repmat([6,5;7,9],3,4),生成3行5列元素为[6,5;7,9]的分块矩阵。

x=repmat([1:5;2:6],2,3),生成3行5列元素为[1,2,3,4,5;2,3,4,5,6]的分块矩阵。

2. cat函数

先生成一些大小相同的矩阵

  1. >> a=repmat(5,3,5)
  2.  
  3. a =
  4.  
  5. 5 5 5 5 5
  6. 5 5 5 5 5
  7. 5 5 5 5 5
  8.  
  9. >> b=repmat(6,3,5)
  10.  
  11. b =
  12.  
  13. 6 6 6 6 6
  14. 6 6 6 6 6
  15. 6 6 6 6 6
  16.  
  17. >> c=repmat(7,3,5)
  18.  
  19. c =
  20.  
  21. 7 7 7 7 7
  22. 7 7 7 7 7
  23. 7 7 7 7 7
  24.  
  25. >> d=repmat(8,3,5)
  26.  
  27. d =
  28.  
  29. 8 8 8 8 8
  30. 8 8 8 8 8
  31. 8 8 8 8 8

下面为cat函数的用法

  1. >> e=cat(1,a,b,c,d)
  2.  
  3. e =
  4.  
  5. 5 5 5 5 5
  6. 5 5 5 5 5
  7. 5 5 5 5 5
  8. 6 6 6 6 6
  9. 6 6 6 6 6
  10. 6 6 6 6 6
  11. 7 7 7 7 7
  12. 7 7 7 7 7
  13. 7 7 7 7 7
  14. 8 8 8 8 8
  15. 8 8 8 8 8
  16. 8 8 8 8 8
  17.  
  18. >> f=cat(2,a,b,c,d)
  19.  
  20. f =
  21.  
  22. 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8
  23. 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8
  24. 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8
  25.  
  26. >> g=cat(3,a,b,c,d)
  27.  
  28. g(:,:,1) =
  29.  
  30. 5 5 5 5 5
  31. 5 5 5 5 5
  32. 5 5 5 5 5
  33.  
  34.  
  35. g(:,:,2) =
  36.  
  37. 6 6 6 6 6
  38. 6 6 6 6 6
  39. 6 6 6 6 6
  40.  
  41.  
  42. g(:,:,3) =
  43.  
  44. 7 7 7 7 7
  45. 7 7 7 7 7
  46. 7 7 7 7 7
  47.  
  48.  
  49. g(:,:,4) =
  50.  
  51. 8 8 8 8 8
  52. 8 8 8 8 8
  53. 8 8 8 8 8
  54.  
  55. >> h=cat(4,a,b,c,d)
  56.  
  57. h(:,:,1,1) =
  58.  
  59. 5 5 5 5 5
  60. 5 5 5 5 5
  61. 5 5 5 5 5
  62.  
  63.  
  64. h(:,:,1,2) =
  65.  
  66. 6 6 6 6 6
  67. 6 6 6 6 6
  68. 6 6 6 6 6
  69.  
  70.  
  71. h(:,:,1,3) =
  72.  
  73. 7 7 7 7 7
  74. 7 7 7 7 7
  75. 7 7 7 7 7
  76.  
  77.  
  78. h(:,:,1,4) =
  79.  
  80. 8 8 8 8 8
  81. 8 8 8 8 8
  82. 8 8 8 8 8

一般用到三维,四维及以上很少用。

e=cat(1,a,b,c,d),将a, b, c, d矩阵按列排。

f=cat(2,a,b,c,d),将a, b, c, d矩阵按行排。

g=cat(3,a,b,c,d),g是一个三维阵(3*5*4),前两个维度和a, b, c, d的大小一样,第三个维度为a, b, c, d矩阵的个数:4。

h=cat(4,a,b,c,d),h是一个四维阵,h(:,:,1,i)=h(:,:,i)。如下所示:

  1. >> h(:,:,1)
  2.  
  3. ans =
  4.  
  5. 5 5 5 5 5
  6. 5 5 5 5 5
  7. 5 5 5 5 5
  8.  
  9. >> h(:,:,2)
  10.  
  11. ans =
  12.  
  13. 6 6 6 6 6
  14. 6 6 6 6 6
  15. 6 6 6 6 6
  16.  
  17. >> h(:,:,3)
  18.  
  19. ans =
  20.  
  21. 7 7 7 7 7
  22. 7 7 7 7 7
  23. 7 7 7 7 7
  24.  
  25. >> h(:,:,4)
  26.  
  27. ans =
  28.  
  29. 8 8 8 8 8
  30. 8 8 8 8 8
  31. 8 8 8 8 8

以上就是repmat与cat函数的简单用法。

 

原文链接:http://www.cnblogs.com/kailugaji/p/10741135.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号