参考:https://zhidao.baidu.com/question/335503359.html
https://baike.baidu.com/item/repmat/8599219?fr=aladdin

在等待了半个小时之后,终于走进了实验室,娜小笑同学还没来,可是故事已经开始了。
在看别人的梯度下降算法的实现的code的时候,遇到了一些很小的疑问。因为繁琐,所以想把这些记录下来,既为自己做笔记,也为那些后来者。

size函数

首先需要介绍的是size函数,因为其使用简单我就一笔带过,size(x,1)
size(x,2),size(x,3)可分别获取一个矩阵的行数,列数以及通道数。
实验的代码如下,有兴趣的可以加深一下印象。

x =[1 2 3 4;5 6 7 8];
% 获取x的行数
m = size(x,1);
n = size(x,2);
z = size(x,3);

从低维矩阵到高维矩阵

当时为了测试size的时候,想找一个3维的矩阵,但是发现居然忘了repmat函数的使用,那就顺便说一下如何利用repmat函数构建3维矩阵。当然在叙述之前,其实我们还是可以用一些笨方法去完成从2维矩阵到3维矩阵的“跳跃”。当然这很繁琐,但是你要先会实现需求,才能去谈优化,不是吗?

实现代码

% 笨方法
x = [1 2 3 4;5 6 7 8];
% 开辟一个2*4*3的空间
y3d = zeros(2,4,3);
% 为每个通道赋值即可
y3d(:,:,1) = x;
y3d(:,:,2) = x;
y3d(:,:,3) = x;% 使用repmat
x3d = repmat(x,[1 1 3])

repmat函数

repmat语法:B = repmat(A,m,n) 将矩阵 A 复制 m×n 块,就是将A作为一个整体,重复m行再重复n列。还有种看起来更规范的写法B = repmat(A,[m n])其实与 B = repmat(A,m,n) 的用法一致。
repmat(x,[1 1 n]):可以将x构建成n维的矩阵。但是仔细想一下,似乎“笨方法”也有可取之处呀,假如你要构建的矩阵每一维都要求是不同的,这时候似乎repmat就无能为力了。看起来也不是很笨嘛。

矩阵的拼接

好了,让我们回到主题矩阵拼接上。那假如我有一个x =[1 2;3 4]的矩阵,我想它变成 x_new = [1 1 2;1 3 4]要怎么实现呢?假如是x_new=[1 2;3 4;1 1]呢?先从简单的来说,假如有 x =[1 2]到x = [1 2 3],你一定知道,同理从x =[1;2]到x =[1;2;3]也很简单,这里我要说的是‘,’和‘;’的区别,‘,’是用来标志列的,即它的前后都是一列,而‘;’是用来标志行的,即在它前后都是独立的一行。用代码来示范下。

% 两列 1和2
x =[1,2]
% 加一列元素为3
x_new =[x,3];
% 两行 1和2
y =[1;2];
% 加一行元素为3
y_new =[y;3] 

好了理解了上面的行列标志,下面的代码其实也就能看懂了。实现一下上面的2维的拼接。

x =[1 2;3 4];
% 实现x_new = [1 1 2;1 3 4]
x_new =[ones(size(x,1),1),x];
% 实现x_new=[1 2;3 4;1 1]
x_new2 = [x;ones(size(x,2),1)'];

就写到这里吧,又快到中午了,看代码。

清晨晓叙:matlab中的矩阵拼接相关推荐

  1. matlab中的矩阵

    我们知道,求解线性方程组是线性代数课程中的核心内容,而矩阵又在求解线性方程组的过程中扮演着举足轻重的角色.下面我们就利用科学计算软件MATLAB来演示如何使用矩阵,同时,也使学生对线性代数的认识更加理 ...

  2. MATLAB中求矩阵非零元的坐标

    MATLAB中求矩阵非零元的坐标: 方法1: index=find(a); [i,j]=ind2sub(size(a),index); disp([i,j]) 方法2: [i,j]=find(a> ...

  3. matlab 求取矩阵中值,matlab中取矩阵中指定列的值组成新矩阵

    matlab 矩阵中怎么加入冒号,比如我想矩阵A的第一列都为"1:" A(:,1)='1:';再问:不行的再答:用结构矩阵或者单元矩阵试试吧. 诚教:matlab中取矩阵的其中几行 ...

  4. matlab 矩阵命令,matlab中的矩阵的基本运算命令

    matlab中的矩阵的基本运算命令 (2013-07-19 08:45:49) 1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数 diag 格式 X = d ...

  5. matlab矩阵a(8),在matlab中对矩阵A的第2行第1列赋值为8可用A(1,2)=8表示。()

    在matlab中对矩阵A的第2行第1列赋值为8可用A(1,2)=8表示.() 更多相关问题 甲.乙两台机床同时生产一种零件,连续10天中,两台机床每天出现的次品数分别人数(如下表):1日2日3日4日5 ...

  6. matlab中寻找矩阵元素并替换

    matlab最大的优势就是矩阵操作,往往用C语言很难实现或者实现起来很复杂的操作,在matlab中使用矩阵都能很简单的完成,下面对我所用到的find函数进行说明: 用一个3乘3的矩阵举例说明,A=[8 ...

  7. MATLAB中创建矩阵的方法

    在MATLAB中创建矩阵的方法一般有3种:第一种是直接输入矩阵元素:第二种是通过调用函数生成特殊矩阵:第三种是利用M文件创建矩阵. 1.元素直输法创建矩阵 在MATLAB中,创建一个矩阵最简单的方法是 ...

  8. MATLAB中删除矩阵的某些列或某些行

    MATLAB中删除矩阵的某一列或某一行 删除某一行 例子 删除某一列 例子 删除多行 例子 删除多列 例子 删除某一行 b([行数],:) = [];// b为矩阵名 例子 删除第一行 删除第三行 删 ...

  9. MATLAB中对矩阵的变换

    MATLAB中对矩阵的变换 矩阵的变换主要有对角阵,三角阵,矩阵的转置,矩阵的旋转,矩阵的翻转,矩阵求逆等操作.下面我将对以上几种操作进行总结. 1.对角阵. 对角矩阵:只有对角线上有非零元素的矩阵. ...

  10. matlab删除矩阵一列数据,matlab中实现矩阵删除一行或一列的方法

    matlab中实现矩阵删除一行或一列的方法 实例如下所示: >> A=[1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 删除行: >> A(2 ...

最新文章

  1. Java服务器热部署的实现原理
  2. mysql为什么表大了要重建_为什么MySQL分库分表后总存储大小变大了?
  3. CSS 设计指南(第3版) 初读笔记
  4. Java 必看的 Spring 知识汇总
  5. ef mysql 外键 一对一_MySQL 外键 一对一 一对多 多对多 复制
  6. 随机生成彩票的shell脚本
  7. fast.ai 深度学习笔记:第一部分第四课
  8. php写else老是报错,调试PHP错误经常用到的一些
  9. IntelliJ IDEA使用技巧——关于版本控制(上)
  10. Gym102028G Shortest Paths on Random Forests 生成函数、多项式Exp
  11. SpringSecurity OAuth2搭建微服务安全认证网关
  12. 成功的背后!(给所有IT人)
  13. 计算机基础知识题库选择题,计算机基础知识题库选择题
  14. python爬虫超时重试_python爬虫怎么处理异常和超时?
  15. GraphCL: Graph Contrastive Learning with Augmentations笔记
  16. C语言链表超简单教程
  17. pycharm设置字体样式_Pycharm IDE设置系列教程(三):配置颜色和字体
  18. 前端知识的浅薄了解1
  19. 征服 JavaScript 面试:什么是闭包?| Eric Elliott
  20. 贾树森_(第一章)手机摄影拍摄详解_(第一课)手机摄影四个真相

热门文章

  1. 比特币一种点对点的电子现金系统是哪一年诞生的_庆比特币诞生12周年|带你回顾比特币的前世今生...
  2. 的正确使用_如何正确使用隔离霜
  3. python int函数 向上取整_【Python小课】 print()函数
  4. python自动化运维平台下载_5、python自动化运维——集中化管理平台Ansible
  5. Windows:win 10系统麦克风没有声音,无法使用
  6. Python:eval函数
  7. Python:学习笔记之PyQt5
  8. FFmpeg学习(5)——视频加水印
  9. Spring Boot最核心的21个注解
  10. Java Swing的进化