前言

编程语言的编译执行有俩种:

  • 解释型语言:按照源程序中的语句顺序,直接的逐句进行分析解释,并立即执行。
  • 编译型语言:先把源代码全部翻译为目标代码,然后运行目标代码,得到执行结果。

像如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—数组运算及数组化编程的更多相关文章

  1. matlab结构体、数组和单元数组类型的创建

    matlab结构体.数组和单元数组类型的创建 @ 目录 matlab结构体.数组和单元数组类型的创建 matlab结构体类型 数组类型 单元数组类型 matlab结构体类型 通过字段赋值创建结构体 创 ...

  2. MATLAB—面向复数和数组的基本运算

    文章目录 一.MATLAB基本运算说明 二.面向复数的计算特点 1.基础知识 2.对复数的基本操作 3.复数的开方问题 二.面向数组 1.数组的输入形式 2.对矩阵中的元素进行并行操作 3.利用数组运 ...

  3. matlab中的字符串数组与函数调用

    1, matlab中的字符串就是1维字符数组,即如: a = 'dddssd'; b = 'lsde'; c = [a, b]; 当然也可以: c= strcat(a, b); 2, matlab中的 ...

  4. matlab中元胞数组(cell)转换为矩阵

    matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ...

  5. MATLAB中的结构数组

    MATLAB中的结构数组 结构数组: 结构是包含一组记录的数据类型,而记录则是存储在相应的字段中.结构的字段可以是任意一种MATLAB数据类型的变量或者对象.结构类型的变量也可以是一维的.二维的或多维 ...

  6. IDL 数组运算

    1.求大.求小和求余 IDL> arr=indgen(4) IDL> print,arr 0 1 2 3 IDL> print,arr>3 3 3 3 3 IDL> pr ...

  7. 【ShareCode】不错的技术文章 -- 如何使用异或(XOR)运算找到数组中缺失的数?

    如何使用异或(XOR)运算找到数组中缺失的数? 今天给大家分享一篇关于使用XOR(异或)运算找到数组中缺失的数的问题. 在一次Javascript面试中,有这么一个问题: 假设有一个由0到99(包含9 ...

  8. [ SHELL编程 ] 数组、关联数组和awk数组

    本文主要对shell编程中常用的数组.关联数组和awk数组定义.操作以及注意事项做个总结,并提供具体案例. 数组 数组定义:一对圆括号表示数组,数组元素之间用空格符号分割. Array=(val1 v ...

  9. MATLAB 的unique函数——数组矩阵的唯一值

    MATLAB 的unique函数——求数组矩阵的唯一值 相关MathWork文档见此:unique数组中的唯一值 1.C = unique(A) 返回与 A 中相同的数据,但是不包含重复项.C 已按照 ...

随机推荐

  1. Linux alias 或者 unalias 设置别名

    设置别名 查看别名:alias 设置别名: 临时设置: alias show='ls -al' 上述设置方法存在一个问题,即设置的命令别名只针对当前回话有效,一旦连接断开并重连之前设置的别名别不在有效 ...

  2. XCTF-boomshakalaka-3

    这题讲道理出的挺脑洞的,apk直接拖入jeb打开,找到主活动 这里有两个方法,一个是onCreate()方法,还有一个是onCreateView()方法 onCreate()方法调用了a这个对象的d方 ...

  3. uni-app app端 人脸识别

    在听到人脸识别,哇塞!感觉来个个高大上的,去阿里 腾讯 看他们的人脸识别方法,官方sdk什么的. 到后来,需求确定了,拍照(照片)上传,后台去识别是不是本人,这一瞬间从天堂到地狱,放着官方那么好的方法 ...

  4. java基础---设计模式(3)

    行为型模式 出处:http://blog.csdn.net/zhangerqing 行为型模式包括策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式 ...

  5. IE浏览器查看星号密码

    用CHROME打开保存密码的网页,F12,右击"密码框"检查,编辑属性:password改为passw(只要不是password即可)即可显示密码

  6. 【剑指offer】50.数组中重复出现的数字

    50.数组中重复出现的数字 知识点:数组:Set的不可重复性 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重 ...

  7. 微信小程序云开发-数据库-商品列表数据排序

    一.wxml添加升序和降序 在商品列表的wxml文件中添加超链接a标签,分别用于升序和降序的点击.分别绑定升序和降序的点击事件. 二.js文件实现升序和降序 分别写对应的按价格升序函数sortByPr ...

  8. 【动态规划DP】[USACO16OPEN]248

    题目描述 Bessie likes downloading games to play on her cell phone, even though she doesfind the small to ...

  9. 关于 .NET 与 JAVA 在 JIT 编译上的一些差异

    最近因为公司的一些原因,我也开始学习一些 JAVA 的知识.虽然我一直是以 .NET 语言为主的程序员,但是我并不排斥任何其它语言.在此并不讨论 JAVA .NET 的好坏,仅仅是对 .NET 跟 J ...

  10. 《Node+MongoDB+React 项目实战开发》已出版

    前言 从深圳回长沙已经快4个月了,除了把车开熟练了外,并没有什么值得一提的,长沙这边要么就是连续下一个月雨,要么就是连续一个月高温暴晒,上班更是没啥子意思,长沙这边的公司和深圳落差挺大的,薪资也是断崖 ...