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. g(:,:,2) =
  35.  
  36. 6 6 6 6 6
  37. 6 6 6 6 6
  38. 6 6 6 6 6
  39.  
  40. g(:,:,3) =
  41.  
  42. 7 7 7 7 7
  43. 7 7 7 7 7
  44. 7 7 7 7 7
  45.  
  46. g(:,:,4) =
  47.  
  48. 8 8 8 8 8
  49. 8 8 8 8 8
  50. 8 8 8 8 8
  51.  
  52. >> h=cat(4,a,b,c,d)
  53.  
  54. h(:,:,1,1) =
  55.  
  56. 5 5 5 5 5
  57. 5 5 5 5 5
  58. 5 5 5 5 5
  59.  
  60. h(:,:,1,2) =
  61.  
  62. 6 6 6 6 6
  63. 6 6 6 6 6
  64. 6 6 6 6 6
  65.  
  66. h(:,:,1,3) =
  67.  
  68. 7 7 7 7 7
  69. 7 7 7 7 7
  70. 7 7 7 7 7
  71.  
  72. h(:,:,1,4) =
  73.  
  74. 8 8 8 8 8
  75. 8 8 8 8 8
  76. 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函数的简单用法。

 

MATLAB中“repmat”与“cat”函数的用法的更多相关文章

  1. matlab中,计算,记录,程序运行,起始,结束 时间,间隔 &matlab中 tic,toc函数的用法

    Tic和toc函数可以计算运行一段时间的代码. 例如: clc tic d=zeros(1,10000); for i=1:10000 d(i)=i; end toc tic c=1; for i=1 ...

  2. matlab中repmat函数的用法(堆叠矩阵)

    matlab中repmat函数的用法 B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p...]) 这是一个处理大矩阵且内容有重复时使用 ...

  3. matlab中的输出显示函数

    matlab中的输出显示函数 在matlab中使用的显示函数有disp.sprintf.fprintf比较常用.下面来介绍一下他们的用法. 1.disp()函数: disp(x)主要是用来输出变量x的 ...

  4. MATLAB中trapz和cumtrapz函数

    这两个函数都是MATLAB中的内置函数,是基于梯形法则的数值积分公式 例如我们有函数y=x^3-2x-3,为了计算在[0,1]上的积分,可以这么做: 其中x和y分别是自变量和对应的值,trapz其实就 ...

  5. C++中rand()函数的用法

    C++中rand()函数的用法   2011-12-30 11:03:59|  分类: C / C++|举报|字号 订阅 一.C++中不能使用random()函数 random函数不是ANSI C标准 ...

  6. Pytorch中randn和rand函数的用法

    Pytorch中randn和rand函数的用法 randn torch.randn(*sizes, out=None) → Tensor 返回一个包含了从标准正态分布中抽取的一组随机数的张量 size ...

  7. matlab中norm与svd函数用法

    格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释: NORM Matrix or vector ...

  8. matlab中imfilter、conv2、imfilter2用法及区别

    来源 :https://blog.csdn.net/u013066730/article/details/56665308(比较详细) https://blog.csdn.net/yuanhuilin ...

  9. matlab中fopen 和 fprintf函数总结

    matlab中fopen函数在指定文件打开的实例如下: *1)"fopen"打开文件,赋予文件代号. 语法1:FID= FOPEN(filename,permission) 用指定 ...

随机推荐

  1. Linux新加磁盘挂载和重启自动挂载

    提示两点:*新加的硬盘需要重启服务器fdisk -l才能看到*下面操作要用root账户大概是这样的,查看-分区-格式化-挂载-重启自动挂载1.加硬盘后重启服务器查看[root@test199 ~]# ...

  2. c/c++ open函数的阻塞和非阻塞

    调用open函数时,可以指定是以阻塞方式还是以非阻塞方式打开一个文件描述符. 阻塞方式打开: int fd = open("/dev/tty", O_RDWR|O_NONBLOCK ...

  3. widows10 安装1803 版本后不能访问网络上的机器解决方法

    安装Windows10 1803 版本后,发现网络上的机器好多不见了. 使用 ping  可以ping 通,但是访问网络共享提示下面错误. 这个原因是1803 中没有安装 SMB1.0 协议.因为 S ...

  4. AI应用开发实战 - 从零开始配置环境

    AI应用开发实战 - 从零开始配置环境 与本篇配套的视频教程请访问:https://www.bilibili.com/video/av24421492/ 建议和反馈,请发送到 https://gith ...

  5. ABP学习笔记总汇

    首先立下一个目标,未来一段时间开始学习ABP. 先立一个flag.之后会再次更新目录和文章连接 目录 1.ABP学习笔记(1)-使用mysql

  6. python爬虫数据解析之BeautifulSoup

    BeautifulSoup是一个可以从HTML或者XML文件中提取数据的python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. BeautfulSoup是python爬虫三 ...

  7. 一些关于StringAPI的题目

    一:知识点 1.字符串"你好北京"中每个字符占用2个内存字节数.字符串底层由字符数组构成,每个字符占用内存2个字节. 2.重写toString 一般对象都有这个方法,目的是将对象按 ...

  8. 构建现代Web应用时究竟是选择传统web应用还是SPA

    在大前端盛行的今天,似乎前后端分离的开发模式才是大势所趋,而SPA的概念更是应运而生.现在随便构建一个web应用程序如果你不是使用SPA的话,就会感觉有点low,但是真的是这样吗?今天这篇文章我们就来 ...

  9. Fiddler使用~知多少?

    昨天已经说了Fiddler的原理,那么今天就说说它是如何使用.我们进入正题. 在大多数网站测试的情况下,我们执行检测一个端口号或网址,这种场景一定会出现,记住,是一定会. 那么就需要我们过滤了,我们需 ...

  10. 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...