MATLAB—数组运算及数组化编程
前言
编程语言的编译执行有俩种:
- 解释型语言:按照源程序中的语句顺序,直接的逐句进行分析解释,并立即执行。
- 编译型语言:先把源代码全部翻译为目标代码,然后运行目标代码,得到执行结果。
像如C语言就是编译型语言,而MATLAB就是解释型语言。
MATLAB精心设计数组和数组运算的目的在于:
- 使计算程序简单、易读,使程序指令更接近于数学计算公式;
- 提高程序的向量化程度,提高计算效率,节省计算机开销。
如下所示,数组可以看作MATLAB的根基:
其次是数组的运算的特点,数组运算每次调用的命令将会同时的加在数组所含的每个标量元素上。即对俩个数组直接的相加,会作用到数组的每个元素上。(前提:俩个数组的维度相同)
比如:
:指默认维度上所有元素
一.数组的结构和创建
1.数组及其结构
数组的维度(一般是二维数组):
可以通过一些指令来获取数组的结构:
(维度说的是:行,维度规模说的是:一行的元素个数)
表示空数组就是:[]。
2.行数组的创建
分别介绍:
- 递增行数组创建
- 一般数组创建
- 随机数组创建
- .mat文件创建
- 利用MATLAB函数创建
以下创建方法为递增(减)型行数组的创建:
元素之间有规律,常作为一个函数的自变量或者循环的自变量使用。
1.冒号生成命令
格式:x=a:inc:b
,其中a是数组初始值,b是数组结束值(可能并不是最后一个元素),inc是元素的间距。
2.定数生成指令
格式:x=linspace(a,b,n)
,其中inc=(b-a)/(n-1)。
通俗的讲就是:从a到b均匀的生成n个元素。
3.对数等距生成指令
格式:x=logspace(a,b,n)
,其中inc=(b-a)/(n-1),a、b分别为10的a、b次幂。
其他类型数组的创建:
4.小规模数组创建
一个元素一个元素的输入
5.创建随机数组
如使用rand(a,b)
,意为产生a行b列个0到1之间的均匀随机数的数组:
6.数组编辑器创建
此方法适用于中等数组的创建
首先点击新建变量
在变量的表中填写变量的元素
在变量区可以对数组变量进行:重命名,永久保存…等操作
通过另存为操作,可以将数据生成.mat
文件,而且可以调用数据
7.利用MATLAB函数创建
例子:
3.对数组构造的操作
命令 | 含义 |
---|---|
permute | 重排数组的维度次序 |
repmat | 按指定的行数、列数铺放模块数组,以形成更大的数组 |
reshape | 在总元素不变的情况下,改变数组的行列数 |
flipud | 以数组“水平中线”为对称轴,交换上下对称位置上的数组元素 |
fliplr | 以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素 |
rot90 | 把数组逆时针旋转90° |
diag | 抽取对角向量 |
二.数组元素编址及寻访
1.数组元素的编址
给数组中的每一个元素编址,可以根据不同的地址来对数组中指定元素的访问
一般分为俩种编址方法(以二位数组为例):
- 全下标编制
- 单序号编制
全下表就是我们经常使用的,即用行列的相对位置来编址。
单序号就是,将元素按照行列顺序(从上到下,从左到右)首尾相接排成一列,单序号即排位,例:
俩种编址的转换
2.二维数组元素的寻访
数组中a([a,b],[c,d])
代表a数组的第a、b行,第c、d列的元素
数组中a(x,:)
代表第x行,以及x行所有列的元素
操作l=a>p
可以找出a数组中元素值大于p的位置,l为逻辑数组
通过a(l)=k
可以改变逻辑真值
1.按编址寻访及赋值
2.按条件寻访及赋值
3.单序号寻访
4.按址赋值
5.按条件寻访及赋值
三.数组运算
数组运算遵循俩个通则:
1.同规模数组之间的运算,是对应元素之间的运算
2.标量与数组的运算,是标量与数组每一个元素的运算
数组的相关算符及优先级如示:
非数的问题
问题出在st./t
当t=0时,会出现错误,但MATLAB不会报错(MATLAB中允许非数),Lt返回的是一个与t规格相同的逻辑数组,对自变量t重新赋值,然后乘一个最小的正实数,这样不但不影响图形效果,而且避免了0作为父母。
MATLAB—数组运算及数组化编程的更多相关文章
- matlab结构体、数组和单元数组类型的创建
matlab结构体.数组和单元数组类型的创建 @ 目录 matlab结构体.数组和单元数组类型的创建 matlab结构体类型 数组类型 单元数组类型 matlab结构体类型 通过字段赋值创建结构体 创 ...
- MATLAB—面向复数和数组的基本运算
文章目录 一.MATLAB基本运算说明 二.面向复数的计算特点 1.基础知识 2.对复数的基本操作 3.复数的开方问题 二.面向数组 1.数组的输入形式 2.对矩阵中的元素进行并行操作 3.利用数组运 ...
- matlab中的字符串数组与函数调用
1, matlab中的字符串就是1维字符数组,即如: a = 'dddssd'; b = 'lsde'; c = [a, b]; 当然也可以: c= strcat(a, b); 2, matlab中的 ...
- matlab中元胞数组(cell)转换为矩阵
matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ...
- MATLAB中的结构数组
MATLAB中的结构数组 结构数组: 结构是包含一组记录的数据类型,而记录则是存储在相应的字段中.结构的字段可以是任意一种MATLAB数据类型的变量或者对象.结构类型的变量也可以是一维的.二维的或多维 ...
- IDL 数组运算
1.求大.求小和求余 IDL> arr=indgen(4) IDL> print,arr 0 1 2 3 IDL> print,arr>3 3 3 3 3 IDL> pr ...
- 【ShareCode】不错的技术文章 -- 如何使用异或(XOR)运算找到数组中缺失的数?
如何使用异或(XOR)运算找到数组中缺失的数? 今天给大家分享一篇关于使用XOR(异或)运算找到数组中缺失的数的问题. 在一次Javascript面试中,有这么一个问题: 假设有一个由0到99(包含9 ...
- [ SHELL编程 ] 数组、关联数组和awk数组
本文主要对shell编程中常用的数组.关联数组和awk数组定义.操作以及注意事项做个总结,并提供具体案例. 数组 数组定义:一对圆括号表示数组,数组元素之间用空格符号分割. Array=(val1 v ...
- MATLAB 的unique函数——数组矩阵的唯一值
MATLAB 的unique函数——求数组矩阵的唯一值 相关MathWork文档见此:unique数组中的唯一值 1.C = unique(A) 返回与 A 中相同的数据,但是不包含重复项.C 已按照 ...
随机推荐
- 基于redis的分布式锁防止高并发重复请求
需求: 我们先举个某系统验证的列子:(A渠道系统,业务B系统,外部厂商C系统)(1)B业务系统调用A渠道系统,验证传入的手机.身份证.姓名三要素是否一致.(2)A渠道系统再调用外部厂商C系统.(3)A ...
- mac 下彻底卸载node和npm
以下链接可供参考: https://segmentfault.com/a/1190000007445643 https://www.cnblogs.com/ChenGuangW/p/11398367. ...
- 测试基础(三) Jmeter安装
前言 JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试. 进入Jmeter官网:https://jmeter.apache.org/,进行Jmeter压缩包的下载. ...
- F5负载均衡-配置指导手册(含IPv6)
F5负载均衡-配置手册 设备概况 图形化界面 通过网络形式访问F5任一接口地址,打开浏览器输入https://网络接口地址:或pc机直连F5的MGMT带外管理口,打开浏览器,输入https://192 ...
- QT从入门到入土(三)——文件的读写操作
引言 文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能. Qt 提供了两种读写纯文本文件的基本方法: 用 QFi ...
- mongodb在双活(主备)机房的部署方案和切换方案设计
1. 概述 现在很多高可用系统为了应对极端情况,比如主机宕机.网络故障以及机房宕机等灾难的发生,通常会部署主备架构(双机房),或者双活架构(双机房),甚至多活架构(三个机房或者以上),mongodb天 ...
- 在SublimeText3中搭建Verilog开发环境记录(二)
接上文 SublimeText3中搭建Verilog开发环境记录(一) 在实现了基础功能后,继续添加插件,让功能更为完善: 快速创建代码模块(snippet) Ctrl+鼠标左键实现模块跳转 通过iV ...
- 如何热更新长缓存的 HTTP 资源
前言 HTTP 缓存时间一直让开发者头疼.时间太短,性能不够好:时间太长,更新不及时.当遇到严重问题需紧急修复时,尽管后端文件可快速替换,但前端文件仍从本地缓存加载,导致更新长时间无法生效. 对于这个 ...
- maven手动添加库文件
项目应用到了ojdbc,dubbo等私有库,maven无法直接下载,需要手动下载后添加到maven本地库里面. 以下以ojdbc为例: 1.下载jar后,cmd添加到本地库: mvn install: ...
- PO封装设计模式 -- Web页面端测试
一.已登录页面 -->新建PO封装的包 -- 以下源码适用于python3以上的版本 代码优化新增 Image -->对操作步骤进行截图 二.basepage 包基础类的封装如下: fro ...