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作为父母。

  • 3
    点赞
  • 21
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论

打赏作者

Aspirant-GQ

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值