Array Creation and Concatenation

Create Numeric Arrays

在MATLAB中,所有的变量都是arrays,并且,默认所有的数值变量都是double类型。例如:

>> A=100

A =

100

>> whos A

Name      Size            Bytes  Class     Attributes

A         1x1                 8  double

为了创建一个matrix(一个二维,矩形的array),可以使用[ ] operator([ ]只能用于创建matrix,不能用于创建高维array):

B = [12, 62, 93, -8, 22; 16, 2, 87, 43, 91; -4, 17, -72, 95, 6]

B =

12 62 93 -8 22

16 2 87 43 91

-4 17 -72 95 6 当使用这个运算符时,列之间用空格或者逗号(comma)分开,行之间用分号(semicolon)分开。所有的行必须有相同的元素数目。

如果一个matrix只有一行或者只有一列,那么就叫做vector,例如:

C = [1, 2, 3]

或者

D = [10; 20; 30]

Creating and Concatenating Matrices

注意当输入符号时,符号要在数值之前。

7 -2 +5 7 - 2 + 5

ans = ans =

10 10

上面两个是等价的,下面两个是不等价的:

[7 -2 +5] [7 - 2 + 5]

ans = ans =

7 -2 5 10

Specialized Matrix Functions

MATLAB中有许多函数可以创建不同的matrix:

Function

Description

Create a matrix or array of all ones.

Create a matrix or array of all zeros.

Create a matrix with ones on the diagonal and zeros elsewhere.

Distribute elements of an input matrix to specified locations in an output matrix, also allowing for accumulation.

Create a diagonal matrix from a vector.

Create a square matrix with rows, columns, and diagonals that add up to the same number.

Create a matrix or array of uniformly distributed random numbers.

Create a matrix or array of normally distributed random numbers and arrays.

Create a vector (1-by-n matrix) containing a random permutation of the specified integers. 大多数这些函数返回的矩阵类型都是double,但是可以使用ones,zeros 和eye改变数值类型,这时需要把MATLAB的类型名作为最后一个参数。例如:

A = zeros(4, 6, 'uint32')

A =

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0 一些例子:(具体用法可以参考help文档)

A = magic(5)

A =

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

A = [12 62 93 -8 22];

B = diag(A, -1)

B =

0 0 0 0 0 0

12 0 0 0 0 0

0 62 0 0 0 0

0 0 93 0 0 0

0 0 0 -8 0 0

0 0 0 0 22 0

Concatenating Matrices

Matrix concatenation就是把一个或者多个matrices合并成一个新的matrix。[ ] operator不仅用于matrix创建,也用于matrix concatenation。

表达式 C = [A B] horizontally concatenates matrices A and B.。表达式 C = [A; B] vertically concatenates them。

如下的例子是vertically concatenate:

A = ones(2, 5) * 6; % 2-by-5 matrix of 6's

B = rand(3, 5); % 3-by-5 matrix of random values

C = [A; B] % Vertically concatenate A and B

C =

6.0000 6.0000 6.0000 6.0000 6.0000

6.0000 6.0000 6.0000 6.0000 6.0000

0.9501 0.4860 0.4565 0.4447 0.9218

0.2311 0.8913 0.0185 0.6154 0.7382

0.6068 0.7621 0.8214 0.7919 0.1763

Keeping Matrices Rectangular

我们可以使用已知的matrix创建任意类型的matrices或者更高维的array,但是必须是合法的形状。如下图

如果水平(horizon)创建,那么行数必须相同,如果垂直(vertical)创建,那么列数必须相同。

下图显示水平创建的时候必须行数相同:

下图显示垂直创建的时候列数不同,MATLAB是不允许这样的:

Matrix Concatenation Functions

Function

Description

Concatenate matrices along the specified dimension

Horizontally concatenate matrices

Vertically concatenate matrices

Create a new matrix by replicating and tiling existing matrices

Create a block diagonal matrix from existing matrices 例子:

Concatenating Matrices and Arrays.可以使用如下三个函数来替代[ ] operator: cat, horzcat, and vertcat. 使用这些函数,可以创建任意维的arrays。

C = cat(1, A, B); % Concatenate along the first dimension

C = vertcat(A, B); % Concatenate vertically

Replicating a Matrix.repmat函数是通过复制已存在的matrix来创建新的matrix的。

repmat(M, v, h)

MATALB竖直复制矩阵M v次,水平复制h次:

A = [8 1 6; 3 5 7; 4 9 2]

A =

8 1 6

3 5 7

4 9 2

B = repmat(A, 2, 4)

B =

8 1 6 8 1 6 8 1 6 8 1 6

3 5 7 3 5 7 3 5 7 3 5 7

4 9 2 4 9 2 4 9 2 4 9 2

8 1 6 8 1 6 8 1 6 8 1 6

3 5 7 3 5 7 3 5 7 3 5 7

4 9 2 4 9 2 4 9 2 4 9 2

Creating a Block Diagonal Matrix.blkdiag函数是沿着对角线方向创建矩阵的:

A = magic(3);

B = [-5 -6 -9; -4 -4 -2];

C = eye(2) * 8;

D = blkdiag(A, B, C)

D =

8 1 6 0 0 0 0 0

3 5 7 0 0 0 0 0

4 9 2 0 0 0 0 0

0 0 0 -5 -6 -9 0 0

0 0 0 -4 -4 -2 0 0

0 0 0 0 0 0 8 0

0 0 0 0 0 0 0 8

Generating a Numeric Sequence

使用colon operator:默认是以1增长的。

A = 10:15

A =

10 11 12 13 14 15

A = -2.5:2.5

A =

-2.5000 -1.5000 -0.5000 0.5000 1.5000 2.5000

A = 1:6.3

A =

1 2 3 4 5 6 注意这里是增长的,下面的例子显然不对:

A = 9:1

A =

Empty matrix: 1-by-0 可以改变增长的值:

A = 10:5:50

A =

10 15 20 25 30 35 40 45 50

A = 3:0.2:3.8

A =

3.0000 3.2000 3.4000 3.6000 3.8000

A = 9:-1:1

A =

9 8 7 6 5 4 3 2 1

matlab accumulation,Matlab学习笔记(三)相关推荐

  1. matlab机器人工具箱学习笔记——ikine函数

    matlab机器人工具箱学习笔记--ikine函数 ikine函数用法 使用实例 链接: https://blog.csdn.net/weixin_42596724/article/details/8 ...

  2. comsol与matlab连接使用学习笔记 1 基础设置

    comsol与matlab连接使用学习笔记 1 基础设置 前言 1.安装 COMSOL livlink for Matlab 2.首次运行 前言 以前从来没有用过comsol livelink for ...

  3. 数理方程及MATLAB解算学习笔记

    数理方程及MATLAB解算学习笔记 文章目录 数理方程及MATLAB解算学习笔记 第一章 MATLAB基础知识 1.class查询数值类型 2.永久性数值变量 3.创建特殊矩阵的专用指令 4.基本初等 ...

  4. 【Matlab 机器人工具箱 学习笔记】双旋转台5轴数控机床 运动学模型02

    参考: [1]何永红, 齐乐华, 赵宝林. 双转台五轴数控机床后置处理算法研究[J]. 制造技术与机床, 2006(1). [2]李永桥, 陈强, 谌永祥. 双转台五轴数控机床运动变换及求解方法的研究 ...

  5. MATLAB Simulink Statflow学习笔记

    MATLAB Simulink Statflow学习笔记 1.概述 在做算法设计时,会用到Statflow模块和MATLAB Function模块,我们可以在这里搭建自己需要的程序逻辑. (1) St ...

  6. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  7. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  8. Ethernet/IP 学习笔记三

    Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...

  9. iView学习笔记(三):表格搜索,过滤及隐藏列操作

    iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...

  10. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

最新文章

  1. 肠·道 | 邱琇:靓汤/烧香影响母婴健康?看巨大出生队列如何揭秘!
  2. fopen时w与wb的区别
  3. goto在c语言中的作用,关键字goto在C语言中的使用
  4. C指针原理(16)-C指针基础
  5. ImportError: No module named _tkinter, please install the python-tk package ubuntu运行tkinter错误
  6. Linux Shell变量类型
  7. 2017.09.21学习总结
  8. 大厂难进,Java面试该如何一面即中?
  9. OnTouchListener和OnCliskListener
  10. HALCON 21.11:深度学习笔记(2)
  11. 精选算法题(1)——枚举符合要求的算术表达式(DFS、回溯法)
  12. Servlet chapter 3
  13. php获取字段中的第几个数字_php提取字符串中的数字
  14. TCP协议下的recv函数
  15. BIS新增手机测试认证标准 IS16333 (Part 3)2017.6.30 印度语
  16. fiddler启动后浏览器不能上网问题解决
  17. java中批量下载图片(httpClient)
  18. 使用apk来控制指纹(指纹型号迈瑞微 ECS120)
  19. OpenCV中的马赛克效果
  20. SAP中使用BDC创建或修改采购信息记录

热门文章

  1. 016 | JavaWeb芝麻开门博客网项目源码 | 大学生毕业设计 | 极致技术工厂
  2. pytorch系统学习
  3. 【ElasticSearch】ELK statck
  4. 中国最懒城市,这里的人不想赚钱,只想躺平
  5. RTOS系统与Linux系统的区别
  6. 强化学习的10个现实应用
  7. 发现个下载Sailfish OS源码的地方
  8. vue动态计算表格列两个时间的差值
  9. 9.10 安卓常用工具类之一 对话 ---- DialogUtil
  10. 关于导数意义的新认知