MATLAB基础:数组及其数学运算

news2024/9/21 20:50:58

今天我们继续学习MATLAB中的数组

我们在学习MATLAB时了解到,MATLAB作者秉持着“万物皆可矩阵”的思想企图将数学甚至世间万物使用矩阵表示出来,而矩阵的处理,自然成了这门语言的重中之重。

数组基础

在MATLAB中,数组是一个基本的数据类型,用于存储数值型数据。数组可以是数字的集合,可以是一维的(行向量或列向量),也可以是多维的(如矩阵或更高维的张量)。

向量

  1. 维度:向量是特殊的数组,它只有一维。它可以是一个行向量或列向量。
  2. 大小:向量的维度是 𝑛×1n×1(列向量)或 1×𝑛1×n(行向量),其中 𝑛n 是向量中的元素数量。
  3. 用途:向量通常用于表示数学上的点、方向、或物理量,它们可以进行标量乘法、向量加法和点积等操作。

例如:

v_row = [1, 2, 3];  % 行向量
v_col = [1; 2; 3];  % 列向量

创建数组

  • 使用方括号 [] 来创建数组。
  • 在创建数组时“,”和“【空格】”来分隔相邻的元素,用“;”来分隔相邻的每个列。
  • 使用冒号 : 来创建等差数列。例如:D = 1:5 会创建一个行向量 [1 2 3 4 5]D = 1:2:10会创建起始值为1步长为2,但不超过10的行向量[1 3 5 7 9]
  • 使用 linspace 函数来创建包含指定数量元素的等差数列。例如:E = linspace(0,10, 5)会创建一个从0开始到10结束,包含5个等间隔点的数列[0.0,2.5,5.0,7.5,10.0]。

特殊矩阵的创建(两行三列)

  • 零矩阵
  • Z = zeros(2, 3);
  • 所有元素都是1的矩阵 
  • oneMatrix = ones(2, 3);
  • eye:创建单位矩阵(对角线元素为1,其余为0)
  • I = eye(2, 3);
    
  • rand:创建一个元素在[0,1]区间内均匀分布的随机矩阵
  • R = rand(2, 3);
    
  • randn:创建一个元素为标准正态分布(均值为0,方差为1)的随机矩阵
  • RN = randn(2, 3);
    
  • diag:创建对角矩阵或提取矩阵的对角线元素
  • D = diag([1 2 3]); % 创建对角矩阵
    
  • magic:创建一个魔方矩阵(每行、每列和对角线上的元素和相等)
  • M = magic(3); % 注意:这里需要方阵的尺寸
    

每个函数都有其特定的用途,可以根据需要选择使用。

数组操作

  • 查询:A(m,n)
  • 更改:A(m,n)=2
  • 删除:A(m,n)=[](将对应位元素改为空)
  • 提取:A([1,3,2]),依次提取1,3,2位的元素
  • 索引:使用括号 () 来索引数组中的元素。例如:C(2,3) 会返回矩阵 C 中第二行第三列的元素。
  • 切片:可以提取数组的一部分。例如:C(1:2, 2:3) 会提取矩阵 C 的第一和第二行以及第二和第三列的子矩阵。
  • 连接:使用方括号 [] 或函数如 cathorzcat(水平连接)和 vertcat(垂直连接)来连接数组。
  • 转置:使用单引号 ' 来转置数组。例如:C'
  • 计算数组尺寸:size(A),返回2    3,意为两行三列。
  • 计算向量尺寸:length(A)(如果放入矩阵,则显示最长的行或列)

矩阵处理函数

sum:对每一列求和,求和后将每一列的和显示为行向量。

prod:对每一列求乘积。

min:求列的最小值

max:求列的最大值

数组的运算

基本运算

  • A+B与A-B:加与减
  • K*A或A*K:数乘矩阵
  • K+A与K-A:K加(减)A的每个元素
  • A.^K,K.^A:数组乘方
  • A.*B:数组成数组
  • K./A:数除以数组
  • 左除A.\B=右除B./A:数组除法

数学函数

矩阵的数字函数也是按元素额运算,使其通常的函数号,如sin(A),cos(A),acos(A),tan(A),cot(A)等。

exp(A) 自然指数函数

sqrt(A)平方根函数

fix 向0取整

ceil 向+∞取整

floor:向-∞取整

rem 除法余数

mod:模除求余

abs:绝对值(模)

real 复数实部

imag:复数虚部

angle: 复数幅角

conj:复数共轭

log: 对数

ln: 自然对数

如:log10:以10为底的对数

result = log10(3);
//以十为底三的对数

关系与逻辑运算

  • <、<= 小于、小于等于
  • >、>= 大于、大于等于

  • ==、~= 等于、不等于
  • &(与)、|(或)、~(非)
  • any、all 、find

在MATLAB中,“真”用1表示,“假”用0,而逻辑运算中,所有非零元素作为1处理

今天我们学习到这里,明天继续学习MATLAB!

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

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

相关文章

LCD 横屏切换为竖屏-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

LCD 横屏切换为竖屏 横屏显示如何切换为竖屏显示 LCD 屏默认横屏显示 开发板配套的 LCD 屏默认都是横屏显示&#xff0c;如 4.3 寸、7 寸和 10.1 寸的不同分辨率的 RGB LCD 屏 固定坐标体系 &#xff08;以 800*480 分辨率为例&#xff09;横屏模式下的固定坐标&#xff1a;…

【JavaScript】深入理解 `let`、`var` 和 `const`

文章目录 一、var 的声明与特点二、let 的声明与特点三、const 的声明与特点四、let、var 和 const 的对比五、实战示例六、最佳实践 在 JavaScript 中&#xff0c;变量声明是编程的基础&#xff0c;而 let、var 和 const 是三种常用的变量声明方式。本文将详细介绍这三种变量声…

Blackbox AI-跨时代AI产物,你的私人编程助手

1. 引言 随着人工智能技术的飞速发展&#xff0c;我们的生活方式正在经历前所未有的变革。从智能家居到自动驾驶&#xff0c;AI已经渗透到我们生活的方方面面。而在这场科技革命中&#xff0c;Blackbox 网站凭借其先进的技术和全面的功能&#xff0c;成为了众多AI产品中的佼佼者…

基于单片机控制的锂电池组电路的设计

摘 要: 提 出 一 种 基 于 单 片 机 控 制 的 锂 电 池 组 电 路 设计 方 案 . 采 用 8 位 CMOS 闪 存 单 片 机 PIC16F886 作 为主控芯 片 , 电 路 设计 中 含 有 S-8254 芯 片 的 一 次 保 护 电 路 、 S-8244 芯 片 的 二 次 保 护 电 路 和 MCU 的 辅 助 保 护 功…

photoshop学习笔记——选区3 快速选择工具

快速选择工具 W shift W 在3种快速选择工具之间切换 对象选择工具 photoshop CC中没有这个工具&#xff0c;利用AI&#xff0c;将款选中的对象快速的提取选区&#xff0c;测试了一下&#xff0c;选区制作的非常nice快速选择工具 跟磁性套索类似&#xff0c;自动识别颜色相似…

qt初入门9:qt记录日志的方式,日志库了解练习(qInstallMessageHandler,qslog, log4qt)

项目中用到qt&#xff0c;考虑有需要用到去记录日志&#xff0c;结合网络&#xff0c;整理一下&#xff0c;做记录。 简单了解后&#xff0c;qt实现日志模块思考&#xff1a; 1&#xff1a;借助qt自带的qInstallMessageHandler重定向到需要的目的地。 2&#xff1a;自己封装一…

JAVA SE 类和对象

类和对象 类定义和使用类的定义格式 类的实例化什么是实例化 this 引用this引用的特性 对象的构造及初始化如何初始化对象构造方法概念特性 在这里插入图片描述 **注意**&#xff1a; 封装封装的概念封装扩展之包导入包中的类自定义包包的访问权限控制举例 static成员static修饰…

MOZHE SQL手工注入漏洞测试(MySQL数据库)

主界面URL没有参数&#xff0c;无法判断是否有注入点 点击公告 【浏览器不便于查看返回包可以用burp】 测试URL 参数后加上单引号&#xff0c;报错&#xff0c;说明存在注入点 http://124.70.64.48:40021/new_list.php?id1 获取表列数 order by 4 返回200 order by 5 …

鸿蒙应用框架开发【N-Body模拟程序】

N-Body模拟程序 介绍 在本示例中&#xff0c;使用ArkTS编程语言开发了业界编程语言基准测试项目[Benchmarks Game]中的[N体问题模拟程序]&#xff0c;实现类木星体轨道计算。 本示例用到了ohos.taskpool和ohos.worker 接口。示例中的程序可以用于AOT(Ahead Of Time)等性能测…

计科录取75人!常州大学计算机考研考情分析!

常州大学&#xff08;Changzhou University&#xff09;&#xff0c;简称“常大”&#xff0c;位于江苏省常州市&#xff0c;是江苏省人民政府与中国石油天然气集团有限公司、中国石油化工集团有限公司及中国海洋石油集团有限公司共建的省属全日制本科院校&#xff0c;为全国深…

⼤模型在⽹络安全⽅⾯的应⽤汇总

引⾔ ⼤语⾔模型&#xff08;Large Language Models, LLMs&#xff09;的横空出世&#xff0c;为传统计算机科学的各个细分领域带来了颠覆性的变⾰。这种变⾰的浪潮同样席卷了⽹络安全领域&#xff0c;引发了⼀系列深刻的变化和影响。GPT-4、Gemini、Llama 2 等⼤模型以其卓越的…

7月22日学习笔记 文件共享服务nfs,SAMBA文件共享与DNS域名服务

任务背景 由于业务驱动&#xff0c;为了提⾼⽤户的访问效率&#xff0c;现需要将原有web服务器上的静态资源 ⽂件分离出来&#xff0c;单独保存到⼀台⽂件服务器上。 任务要求 1. ⼀台应⽤服务器web-server部署apache&#xff0c;静态⽹⻚资源存放在另外⼀台NFS服 务器上 …

深入理解计算机系统 CSAPP 家庭作业11.7

静态内容是指在不同请求中访问到的数据都相同的静态文件。例如&#xff1a;图片、视频、网站中的文件&#xff08;html、css、js&#xff09;、软件安装包、apk文件、压缩包文件等。 /** get_filetype - derive file type from file name*/ void get_filetype(char *filename,…

12_TypeScript 模块 以及 模块化封装DB 库

TypeScript 模块 1、模块中暴露方法12、模块中暴露方法23、模块中暴露方法34、封装[上一节的db 库](https://blog.csdn.net/qq_46143850/article/details/140664100)5、TypeScript 命名空间 模块的概念&#xff08;官方&#xff09;&#xff1a; 关于术语的一点说明&#xff1a…

Linux网络-wget命令

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注我&#xff0c;我尽量把自己会的都分享给大家&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux服务器作为一个常用的网络服务器&#xff0c;主要的作用就是向客户端提供网络…

【工具推荐】强大的JS渗透测试工具:URLFinder

一、下载地址 https://github.com/pingc0y/URLFinder 二、工具原理 从表现中JS中提取URL或者敏感数据&#xff0c;一款用于快速提取检测页面中JS与URL的工具。功能类似于JSFinder&#xff0c;但JSFinder好久没更新了。 三、工具介绍 1、下载解压出来包含下面两个文件 2、直…

内网渗透—内网穿透工具NgrokFRPNPSSPP

前言 主要介绍一下常见的隧道搭建工具&#xff0c;以此来达到一个内网穿透的目的。简单说一下实验滴环境吧&#xff0c;kali作为攻击机&#xff0c;winserver2016作为目标靶机。 kali 192.168.145.171 winserver2016 10.236.44.127 显然它们处于两个不同的局域网&#xff0c…

SQLException:Operation not allowed after ResultSet closed

运行代码时出现的错误&#xff1a; 这是在运行简单的JDBC访问数据库时出现的问题&#xff0c;原因是在ResultSet方法中添加了close()关闭方法,如图&#xff1a; ResultSet 是通过 query 方法获得的&#xff0c;并且在 try-catch 块中没有显式地关闭它。这实际上是 一个常见的…

ServletContainerInitializer接口详解

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhlServletContainerInitializer概述 ServletContainerInitializer是Servlet 3.0规范中引入的一个接口,它的主要目的是允许开发者在Servlet容器(如Tomcat、Jetty等)启动时执行一些自定义的初始化代…

池化层pytorch最大池化练习

神经网络构建 class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.maxpool1 MaxPool2d(kernel_size3, ceil_modeFalse)def forward(self, input):output self.maxpool1(input)return output Tensorboard 处理 writer SummaryWriter("./l…