matlab accumulation,Matlab学习笔记(三)
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学习笔记(三)相关推荐
- matlab机器人工具箱学习笔记——ikine函数
matlab机器人工具箱学习笔记--ikine函数 ikine函数用法 使用实例 链接: https://blog.csdn.net/weixin_42596724/article/details/8 ...
- comsol与matlab连接使用学习笔记 1 基础设置
comsol与matlab连接使用学习笔记 1 基础设置 前言 1.安装 COMSOL livlink for Matlab 2.首次运行 前言 以前从来没有用过comsol livelink for ...
- 数理方程及MATLAB解算学习笔记
数理方程及MATLAB解算学习笔记 文章目录 数理方程及MATLAB解算学习笔记 第一章 MATLAB基础知识 1.class查询数值类型 2.永久性数值变量 3.创建特殊矩阵的专用指令 4.基本初等 ...
- 【Matlab 机器人工具箱 学习笔记】双旋转台5轴数控机床 运动学模型02
参考: [1]何永红, 齐乐华, 赵宝林. 双转台五轴数控机床后置处理算法研究[J]. 制造技术与机床, 2006(1). [2]李永桥, 陈强, 谌永祥. 双转台五轴数控机床运动变换及求解方法的研究 ...
- MATLAB Simulink Statflow学习笔记
MATLAB Simulink Statflow学习笔记 1.概述 在做算法设计时,会用到Statflow模块和MATLAB Function模块,我们可以在这里搭建自己需要的程序逻辑. (1) St ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- Ethernet/IP 学习笔记三
Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
- 吴恩达《机器学习》学习笔记三——多变量线性回归
吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...
最新文章
- 肠·道 | 邱琇:靓汤/烧香影响母婴健康?看巨大出生队列如何揭秘!
- fopen时w与wb的区别
- goto在c语言中的作用,关键字goto在C语言中的使用
- C指针原理(16)-C指针基础
- ImportError: No module named _tkinter, please install the python-tk package ubuntu运行tkinter错误
- Linux Shell变量类型
- 2017.09.21学习总结
- 大厂难进,Java面试该如何一面即中?
- OnTouchListener和OnCliskListener
- HALCON 21.11:深度学习笔记(2)
- 精选算法题(1)——枚举符合要求的算术表达式(DFS、回溯法)
- Servlet chapter 3
- php获取字段中的第几个数字_php提取字符串中的数字
- TCP协议下的recv函数
- BIS新增手机测试认证标准 IS16333 (Part 3)2017.6.30 印度语
- fiddler启动后浏览器不能上网问题解决
- java中批量下载图片(httpClient)
- 使用apk来控制指纹(指纹型号迈瑞微 ECS120)
- OpenCV中的马赛克效果
- SAP中使用BDC创建或修改采购信息记录