数学建模 —— 矩阵的运算(上)

目录

调用函数运算

sum : 求和函数

prod : 求乘积函数(product)

cumsum : 计算累积和(cumulative sum)

diff : 计算差分(difference)

mean : 计算平均值 (average)

median : 计算中位数

mode : 计算众数

var : 计算方差 (variance)

std : 计 算 标 准 差 (standard deviation)

min : 求最小值 (minimum value)

max : 求最大值 (maximum value)


调用函数运算

常见的数学运算函数,例如abs,sin,round,log 等。这些函数可以 直接应用到矩阵上,所表示的含义是:对矩阵中的每个元素分别运用这些数学运算函数,因此 返回的结果也是一个矩阵。下面我们来举几个例子:

 除了这些最基础的数学运算函数外,这一小节我们还要学习下表这些使用频率较高的函数, 大家需要熟练掌握它们的用法(点击函数名称可以快速跳转到相应的位置):


sum : 求和函数

(1)如果A是一个向量,则sum(A)可以计算A中所有元素的和。

(2)如果A 是一个矩阵,则sum(A,dim)可以计算A矩阵沿维度dim 中所有元素的和

●  dim=1表示沿着行方向进行计算,即计算矩阵每一列的和,返回一个行向量;

●  dim=2表示沿着列方向进行计算,即计算矩阵每一行的和,返回一个列向量。

当dim=1时,sum(A,1)可以简写成sum(A)。

(3)计算一个矩阵中所有元素的总和。可以先用一次 sum 函数计算矩阵A 每一列的和,返回一个行向量;然后再用一次 sum 函数计算这个行向量的和;也可以先使用 A(:) 语句把 A 中的所有元素按照线性索引的顺序拼接成一个向量,然后直接计算这个向量的和。

(4)指定如何处理 NaN 值。NaN 指不定值或缺失值(Not a Number)。默认情况下,求和时有一个元素为NaN 值,那么最终的和也为NaN;我们可以在最后加一个输入参数:'omitnan',这样计算时会忽略NaN值。


prod : 求乘积函数(product)

prod 函数的用法和sum 函数的用法相同,它是用来计算乘积的,我们直接来看例子。


cumsum : 计算累积和(cumulative sum)

(1)如果A 是一个向量,则cumsum(A)可以计算向量A 的累积和(累加值)

 (2)如果A 是一个矩阵,则cumsum(A,dim)可以计算A 沿维度 dim 中所有元素的累积和,具体的使用方法和sum函数类似。

 (3)也可以在最后加一个输入参数:'omitnan',这样计算时会忽略NaN值


diff : 计算差分(difference)

差分运算在和时间相关的数据中用的比较多。在原始序列中用下一个数值减去上一个数值可以得到一个新的序列,这个过程就是一阶差分;在一阶差分结果的基础上再进行一次一阶差分,就是二阶差分,举个例子,下表是8年来的体重变化,我们可以计算一阶差分和二阶差分的结果:

 diff 函数也可以用在矩阵上面: diff(A,n,dim)表示沿矩阵A 的维度dim 方向上计算差分, 当dim=1 时沿着行方向计算,即得到每列的n 阶差分;当dim=2 时沿着列方向计算,即得到每行的n 阶差分。类似的,dim=1时 ,diff(A,n,1)也可以简写成diff(A,n)。


mean : 计算平均值 (average)

 (2)如果A 是一个矩阵,则mean(A,dim)可以计算A 沿维度dim 中所有元素的平均值。

● 当dim=1 时沿着行方向进行计算,即得到每列的平均值

当 dim=2 时沿着列方向进行计算,即得到每行的平均值

类似的,dim=1时,mean(A,1)也可以简写成mean(A).

(3)也可以在最后加一个输入参数:'omitnan',这样计算时会忽略NaN值。 


median : 计算中位数


mode : 计算众数

众数是指一组数据中出现次数最多的数。 一组数据可以有多个众数,例如向量[1 3 -1 2 1 3] 中,1和3都出现了两次,它们都是这组数据中的众数。

MATLAB 中可以使用mode 函数计算数据的众数,调用方法也和 mean 函数类似,但是 mode 函数可以有多个返回值。

以计算向量A 的众数为例,直接调用mode(A)会返回A 中出现次数最多的值。如果有多个值以相同的次数出现,mode 函数将返回其中最小的值。

如果A 是一个矩阵,则mode(A,1)或者mode(A)可以沿着行方向进行计算,得到每一列的众数;mode(A,2)可以沿着列方向进行计算,得到每一行的众数,这里的1和2表示维度dim。

注意:使用mode 函数计算众数时会自动忽略NaN 值,我们不能额外添加'omitnan'参数, 否则会报错。

现在我们来看 mode 函数有两个返回值的例子,如果A 是一个向量,[M,F]=mode(A) 得到的M表示向量A的众数,F表示众数M在向量A中出现的次数。

上面这个例子中,有两个众数,分别是0和8,它们出现的次数都是3次,此时MATLAB 会返回最小的那个数作为众数。MATLAB 能不能把这些众数都输出呢?

当然可以,我们需要用到mode 函数的第三个返回值:[M,F,C]=mode(A),  这里的C 是一个元胞数组,元胞数组里面有一个列向量,列向量中的每个元素都是向量 A 的众数 。(注意,元胞数组(cell array)是使用大括号{ }括起来的,元胞数组里面的元素可以包含不同的数据类型,例如标量、向量、矩阵、字符串等)

命令C{1}可以提取出元胞数组C 中的第一个数据:列向量[0;8]。这个列向量中的元素0 和8都是向量A 的众数。

以上是A 为向量时的情况,如果A 是一个矩阵,mode 函数也可以有两个返回值或三个返 回值,后两个返回值代表的含义与A 为向量时类似。我们直接看下面的例子:

M 是一个包含四个元素的行向量,里面第k 个元素表示第k 列的众数,例如第1列的众数为0;如果有多个众数,那么会返回最小的那个值,因此第2列返回的众数为0。

F 也是一个包含四个元素的行向量,它表示M 中的各个众数在其所在列中出现的次数, 例如第1列的众数0在第1列出现了2次。

C 是一个大小为1×4的元胞数组,里面的第k 个数据表示第k 列的所有众数。从元胞数组 C 的结果来看,第一个和第四个数据分别为0和4,这说明第1列和第4列都只有一个众数,分别是0和4;C 中第二个数据是一个4行1列的列向量,这说明第2列有四个众数;C  中第 三个个数据是一个2行1列的列向量,这说明第3列有两个众数。

我们可以使用大括号索引提取C 中的每个数据:

 类似的,我们也可以计算A矩阵每一行的所有众数,结果如下:


var 计算方差 (variance)

方差是概率论与数理统计里面的知识点,我们先简单回顾一下相关的内容。

先来看个例子:第一组数据是6、8、10、12、14;第二组数据是-10、0、10、20、30。显 然两组数据的均值都是10,但第二组数据的离散程度更大一些。

方差就是用来描述这种离散程度的一个统计量,当两组数据的平均值相同时,方差较大的一组数据的离散程度更大。有一个常举的例子: 一个射击队要从两名运动员中选拔一名参加比赛,选拔赛上两人各打了10发子弹,在得分均值相差不大的情况下,应选择方差更小的队员。

在现实生活中,我们收集到的数据可分为下面两类:

总体数据:所要考察对象的全部个体叫做总体

样本数据:从总体中所抽取的一部分个体叫做总体的一个样本。 根据收集的数据类型的不同,我们计算方差的公式也有所区别。

从上方的计算公式可以看出,总体方差和样本方差在计算时的区别在于分母上是否要减1。

MATLAB中使用var 函数计算方差:

(1)如果A 是一个向量,那么 var(A,w)可以计算A 的方差,当w=0 时,表示计算样本 方 差 ,w=1 时表示计算总体方差,另外,var(A,0)  也可以直接简写为var(A)。

(2)如果A 是一个矩阵,则var(A,w,dim) 可以计算矩阵A沿维度dim 上的方差。

●   dim=1时表示沿着行方向进行计算,即得到每一列的方差;

●   dim=2时表示沿着列方向进行计算,即得到每一行的方差。

当 dim 为 1 时 ,var(A,w,1) 可以简写为var(A,w);若 w 为0,则可以进一步简写为

var(A),即默认情况下MATLAB会沿行方向计算得到每一列的样本方差。

(3)如果数据中存在NaN 值,可以在var函数的最后加上'omitnan'参数来忽略NaN.


std : 计 算 标 准 差 (standard deviation)

标准差是方差的算术平方根,它也是用来反应数据离散程度的一个统计量。那么问题来了, 既然有了方差为什么还需要标准差呢?这是因为方差和数据原本的量纲(即单位)是不一致的, 对方差的计算公式进行量纲分析容易看出,方差的量纲是原始数据量纲的平方,因此对方差开 根号,得到的标准差的量纲和原始数据的量纲一致。

在MATLAB  中,我们可以使用std函数计算样本标准差和总体标准差,它和var函数的使 用方法完全相同。


min : 求 (minimum value)

min函数主要有两种用法:

用法一:求两个矩阵对应位置元素的最小值:min(A, B)。

矩阵A和矩阵B的大小可以不一样,只要保证矩阵A和矩阵B具有兼容的大小就能够计算 ,下面再举两个例子:表中第三列是运行min(A,B)后返回的结果。

用法二:求向量或者矩阵中的最小值,可以指定沿什么维度计算并返回索引。

具体用法有以下三种:

(1)如果A是向量,则min(A)返回A 中的最小值。如果A 中有复数,则比较的是复数的模长。

 (2)如果A 是矩阵,则min(A,[ ],1)   沿着A 的行方向求每一列的最小值,也可以简写为 min(A);min(A,[ ],2)沿着A的列方向求每一行的最小值。这里的1和2表示矩阵的维度(dim)

 为什么中间要加一个空向量[ ]?如果不加的话,就是将A 中每个元素和 1或者2 比较大小,并返回较小值。

 (3)在求向量或矩阵的最小值时,min 函数可以有两个返回值: [m,ind]=min(A).  第一个返回值m 是我们要求的最小值,ind 是最小值在所在维度上的索引。如果最小元素出现多次, 则ind是最小值第一次出现位置的索引。

上面我们介绍了min 函数的两种用法,如果向量或者矩阵中存在NaN 值 ,min  函数会自 动忽略,大家不需要单独对NaN值进行处理。


max : 求 (maximum value)

max函数和min函数的用法完全相同,它是用来求最大值的函数,下面我们举几个例子:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5(c++)开发日志(2):向日志和屏幕输出信息/将C++类变为蓝图类

通过UE_LOG()向日志输出,向其传入三个参数(①输出日志类型,一般LogTemp ②具体种类,普通/警告/错误,这里是Warning ③输出的文本内容,使用TEXT(" "),这里是TEXT("Run AActor BeginPlay")) 代码写…

找茬找不同看图猜谜语小游戏

找茬找不同看图猜谜语小游戏:挑战你的观察力与智慧 🔍 挑战你的观察力:找茬找不同 你是否曾对两张看似相同的图片感到好奇,想要找出它们之间的微妙差异?找茬找不同小游戏正是为了满足你的这种好奇心而设计的。在这些游…

前端基础:CSS(篇一)

目录 css概述 CSS与HTML的关系 基本语法 行内样式表 代码 运行 内嵌样式表 代码 运行 外部样式表 代码 运行 选择器 标签选择器 代码 运行 id选择器 代码 运行 类选择器 代码 运行 选择器优先问题 通配选择器 选中所有的标签 代码 运行 选择器组…

记一次 .NET某网络边缘计算系统 卡死分析

一:背景 1. 讲故事 早就听说过有什么 网络边缘计算,这次还真给遇到了,有点意思,问了下 chatgpt 这是干嘛的 ? 网络边缘计算是一种计算模型,它将计算能力和数据存储位置从传统的集中式数据中心向网络边缘的用户设备、…

spring boot(学习笔记第十一课)

spring boot(学习笔记第十一课) Session共享,JPA实现自动RESTful 学习内容: Session共享JPA实现自动RESTful 1. Session共享 Session共享面临问题 spring boot默认将session保存在web server的内存里面,会产生什么问题呢。 如上图所示&#…

BUU CODE REVIEW 11 代码审计之反序列化知识

打开靶场&#xff0c;得到的是一段代码。 通过分析上面代码可以构造下面代码&#xff0c;获取到序列化之后的obj。 <?php class BUU {public $correct "";public $input "";public function __destruct() {try {$this->correct base64_encode(u…

一文get懂kwai短视频助力巴西博弈slots游戏广告优势

一文get懂kwai短视频助力巴西博弈slots游戏广告优势 在数字化时代&#xff0c;短视频广告凭借其独特的魅力和高效的传播方式&#xff0c;成为了各大品牌进行营销推广的重要手段。特别是在巴西这个充满活力的国家&#xff0c;kwai短视频广告以其独特的方式&#xff0c;为博弈游…

电子技术基础(模电部分)笔记

终于整理出来了&#xff0c;可以安心复习大物线代了&#xff01;&#xff01; 数电部分预计7.10出

自动雪深传感器的类型

TH-XL2随着科技的飞速发展&#xff0c;气象监测技术也在不断进步。在降雪天气频发的冬季&#xff0c;雪深数据对于保障道路交通、农业生产和电力供应等具有至关重要的作用。自动雪深传感器作为气象监测的重要工具&#xff0c;其类型多样、功能各异&#xff0c;为气象数据的准确…

Android开发系列(十二)Jetpack Compose之BottomSheet

BottomSheet 是 Android 中一个常用的 UI 组件&#xff0c;它通常用于显示从屏幕底部弹出的用户界面。Jetpack Compose 是 Android 中的一个全新 UI 工具包&#xff0c;它提供了一种声明式的方式来构建用户界面。Jetpack Compose 中也有一个名为 BottomSheet 的组件&#xff0c…

基于STM32的智能门锁控制系统

目录 引言环境准备智能门锁控制系统基础代码实现&#xff1a;实现智能门锁控制系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景&#xff1a;门锁管理与优化问题解决方案与优化收尾与总结 1. 引言 智能门锁控制系统通过使用STM32嵌…

NewspaceGPT带你玩系列之登录页

目录 注册一个账号&#xff0c;用qq邮箱&#xff0c;然后登录选一个可用的Plus&#xff0c;不要选3.5探索GPT今天的主角是HubSpot的登录页创建者问答继续问&#xff1a;答继续交流答看看结果&#xff0c;我有点崩溃重新简单来一次试试&#xff0c;下面开始一个新的登录页请求问…

昇思25天学习打卡营第5天|网络与模型相关要素探讨

目录 从 MindSpore 模块中导入nn和ops 定义模型类 模型层 nn.Flatten nn.Dense nn.ReLU nn.SequentialCell nn.Softmax 模型参数 从 MindSpore 模块中导入nn和ops 将 MindSpore 整个模块引入到当前的 Python 脚本里&#xff0c;方便后续运用 MindSpore 所提供的各类功能…

基于python的房价多元线性回归分析

1.导入必要的库 import pandas as pd import numpy as np import statsmodels.api as sm from sklearn.model_selection import train_test_split from sklearn.metrics import r2_score import matplotlib.pyplot as plt # 忽略Matplotlib的警告&#xff08;可选&…

GP37-S-N、GP37-S-E、GP37-S-R比例电磁铁驱动放大器

比例阀用电磁铁EP45-C、EP37-E、EP45-G、EP45-N、GP37-3-A、GP37-S-N、GP37-S-E、GP37-S-R在直流12V/24V的电液比例控制系统中与BEUEC比例控制放大器配套使用&#xff0c;共同作用于比例阀的控制。电磁铁输出力通过负载弹簧转换成位移&#xff0c;实现电流-力-位移线性转换&…

.NET 矩阵6月红队工具和资源集合

01外网入口打点 1.1 Sharp4WbemScripting 1.2 ASP4Eval 1.3 Sharp4Web.config 1.4 Sharp4AddScript 02安全防御绕过 2.1 Sharp4DefenderStop 03搭建代理隧道 3.1 Sharp4suo5 04混淆加密防护 4.1 Obfuscar混淆器 4.2 Sharp4BatchGuard 05安全技术文档 5.1 .NET 通过Junction Fol…

基于flask的闪现、g对象、蓝图

【 一 】闪现&#xff08;flash&#xff09; # 1 flask中得闪现存放数据的地方&#xff0c;一旦取了&#xff0c;数据就没了-实现跨请求间传递数据 # 2 django中有没有类似的东西&#xff1f;message 消息框架# 3 基本使用1 设置&#xff1a;flash(欢迎你、欢迎来到澳门赌场&a…

AI绘画Stable Diffusion 高清放大,多种方法详解,建议收藏!

&#x1f463; 本章概述 在Stable Diffusion我们想要得到一张高分辨率且具有细节特征的图片时&#xff0c;我们就需要使用一些图片放大算法来帮助我们实现。 本文主要概述在sd中常常使用的高清修复方法以及不同方法的区别和应用场景。同时也给出一些推荐的工作流&#xff0c;你…

理解MySQL核心技术:外键的概念作用和应用实例

引言 在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;外键&#xff08;Foreign Key&#xff09;是维持数据一致性和实现数据完整性的重要工具。本文将详细介绍MySQL外键的基本概念、作用&#xff0c;以及相关的操作指南和应用实例&#xff0c;帮助读者掌握并灵活…

YOLOv8的5种不同部署方式推理速度对比:Pytorch、ONNX、OpenVINO-FP32、OpenVINO-int8、TensorRT

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…