2、矩阵介绍

news2024/11/17 19:50:33

目录

一、矩阵的构造

二、矩阵大小及结构的改变

三、矩阵下标的引用

1.矩阵下标访问单个矩阵元

2.线性引用矩阵元

3.访问多个矩阵元素

四、矩阵信息的提取

1.矩阵结构

2.矩阵大小

3.矩阵的数据类型


一、矩阵的构造

矩阵的构建方式有两种,一种与单元数组相似,可以对变量直接进行赋值;另一种是MATLAB中提供构建特殊矩阵的指令,例如

1. 建立简单矩阵
简单矩阵采用矩阵构造符号——方括号“[]”,将矩阵元素置于方括号内,同行元素之间用空格或逗号隔开,行与行之间用分号“;”隔开,格式如下:

示例1分别构造一个二维矩阵、一个行向量、一个列向量

A=[2,3,5;3,6,10]  %使用逗号和分号构造二维矩阵

B=[2 3 5;3 6 10]  %使用空格和分号构造二维矩阵

V1=[1,2,3,4]  %构造行向量

V2=[1;2;3;4]  %构造列向量

运行结果:

2.建立特殊矩阵

特殊矩阵是指非零元素或零元素的分布有一定规律的矩阵,常见的有对称矩阵、三角矩阵和对角矩阵等

示例2

O=ones(2)  %构造2*2的矩阵

Z=zeros(2)  %构造2*2的0矩阵

E1=eye(2)  %构造2*2的单位矩阵

E2=eye(2,3)  %构造2*3的单位矩阵

E3=eye(3,2)  %构造3*2的单位矩阵

运行结果:

3.向量、标量和空矩阵
通常情况下,矩阵包含m行和n列,即m×n。当mn取一些特殊值时,得到的矩阵具有一些特殊的性质。

1)向量

m=1n=1,即1×nm×1时,建立的矩阵称为向量。

示例3

a = [1 2 3 4 5 6]

b = [1;2;3;4;5;6]

whos  %调用whos函数查看a,b的相关信息

运行结果:

2)标量

m=n=1时,建立的矩阵称为标量。任意以1×1的矩阵形式表示的单个实数、复数都是标量。

示例4MATLAB中,标量有两种表示方法

x=10+2i  %将复数10+2i赋值给变量x

shape=size(x)  %查询变量x的形状信息

y=[10+2i]  %将复数10+2i构造的矩阵赋值给变量y

shape=size(y)  %查询变量y的形状信息

x==y  %判断变量x和变量y是否相等,相等得1,否则为0

运行结果:

注意单个实数或者复数在MATLAB中都是以矩阵的形式存储的;在MATLAB中,单个数据或由单个数据构造的矩阵都是标量

(3)空矩阵。
m=n=0,或者m=0,或者n=0,即0×00×nm×0时,创建的矩阵称为空矩阵。空矩阵可以通过赋值语句建立。

示例5

x=[]  %建立一个空矩阵

z=[0 0 0;0 0 0]  %建立一个2行3列的0矩阵

whos x z  %调用whos函数查看x,z的相关信息

运行结果:

二、矩阵大小及结构的改变

根据运算时的不同情况和需要,矩阵大小和结构的改变,主要的方式有旋转矩阵、改变矩阵维度、删除矩阵元素等。其相关函数有:

三、矩阵下标的引用

1.矩阵下标访问单个矩阵元

常用的矩阵索引表达式 

2.线性引用矩阵元

矩阵中某一元素的单下标索引值和双下标索引值之间,可以通过MATLAB内部函数进行转换,其语法形式为: 

其功能为将双下标索引值转换为单下标索引值,其中siz是一个包含两个元素的数组,代表了转换矩阵的行列数,一般可以直接用size(A)表示,ij分别是双下表索引中的行、列值,IND是转换后的单下标索引值。

其功能为将单下标索引值转换为双下标索引值,各变量意义同上。

示例6矩阵元素单双下标索引值转换

Matrix = magic( 3 )

IND = sub2ind( size( Matrix ),2,3)

[I J]= ind2sub(size( Matrix ),7)

运行结果:

3.访问多个矩阵元素

在下标表达式里,可以用冒号来表示矩阵的多个元素。例如,A(1:k,j)表示矩阵第j列的前k个元素。利用冒号,第4列元素的和可以用更为简洁的式子,语法格式如下:

还可简便写为:

此外,MATLAB提供了一个关键字end,用于表示该维中的最后一个元素,所以上式还可以改写成:

实际上还可以用冒号来表示非相邻的多个元素示例7

A=1:10

B=A(1:3:10)

运行结果:

四、矩阵信息的提取

1.矩阵结构

矩阵的结构是指矩阵子元素的排列方式。其相关函数

注意这类函数的返回值是逻辑类型的数据。返回值为“1”表示该矩阵是某一特定类型的矩阵;返回值为“0”表示该矩阵不是该特定类型的矩阵。

2.矩阵大小

矩阵的形状信息反映了矩阵的大小,通常包括

  1. 矩阵的维数。
  2. 矩阵各维(例如最长维、用户指定的维)的长度
  3. 矩阵元素的个数

其相关的4个函数为:

示例8利用eye函数建立一个5×3的矩阵,利用ndims函数获得矩阵A的维数信息

A=eye(5,3)

ndims(A)

运行结果:

3.矩阵的数据类型

矩阵作为MATLAB的内部数据存储和运算结构,其元素可以是各种各样的数据类型,对应不同数据类型的元素,可以是数值、字符串、元胞、结构体等。其相关函数有:

注意这类函数的返回值也是逻辑类型的数据。返回值为“1”表示是某一特定的数据类型;返回值为“0”表示不是该特定的数据类型

示例9矩阵元素的数据类型的判断

A=[2 3;10 7]

isnumeric(A)

isfloat(A)

islogical(A)

运行结果:

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

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

相关文章

【寒假每日一题】DAY.7 有序序列判断

牛客网例题:点我做题 【❤️温馨提示】先做题,再看讲解效果更佳哟 描述 输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序 或者从大到小排序(相同元素也视为有序)。输入描述: 第一行…

【C++】stack、queue的模拟实现及deque介绍

一、stack 1. 以vector作为底层容器 从栈的接口中可以看出,栈实际是一种特殊的vector,因此使用vector完全可以模拟实现stack。 由于stack的所有工作是底层容器完成的,而这种具有“修改某物接口,形成另一种风貌”的性质&#xf…

Dubbo学习

文章目录1.概念1.1 Dubbo特性1.2 设计架构2.快速开始2.1需求假设2.2.工程架构2.3 创建模块2.3.1 gmall-interface—公共接口层2.3.2 gmall-user—用户模块2.3.3 gmall-order-web—订单模块2.3.4 测试结果2.3.5 使用Dubbo改造2.3.6 注解版3.监控中心4.整合SpringBoot5.Dubbo配置…

高性能网络设计专栏-网络编程

以下是在零声教育的听课记录。 如有侵权,请联系我删除。 链接:零声教育官网 一、网络io与select,poll。epoll 网络IO ,会涉及到两个系统对象 一个是 用户空间 调用 IO 的进程或者线程,另一个是 内核空间的 内核系统&a…

K_A11_007 基于STM32等单片机驱动K型热电偶( MAX6675) 串口与OLED0.96双显示

[TOC](K_A11_007 基于STM32等单片机驱动K型热电偶( MAX6675) 串口与OLED0.96双显示) 一、资源说明 单片机型号测试条件模块名称代码功能STC89C52RC晶振11.0592MK型热电偶( MAX6675) 模块STC89C52RC驱动K型热电偶( MAX6675)模块串口与OLED0.96双显示STM32F103C8T6晶振8M/系统时…

后端架构学习

心理预期 1. 什么是后端服务的架构?怎么去理解后端架构这个词? 学习架构的目的:可以更高效的解决复杂的业务问题和技术问题。对架构设计的一知半解会导致,设计不足或者多度设计的现象。架构师思考问题的角度 按出发点划分 从系统…

Linux虚拟机忘记密码

Linux虚拟机忘记密码 使用虚拟机过程中,我们有时会忘记root的登录密码,我们需要进入救援模式去命令passwd更改新的密码。 编辑模式(e) 在首页,按住e,进入编辑模式,找到LANGzh_CN.UTF-8,在末尾加上 init/bin/sh 挂载…

学长教你学C-day10-C语言数组

“同学们,我们前面讲过了变量和数据类型,我们来复习一下,用C语言变量存储数据1~10,然后再输出。小明小红你们上黑板来写,其他人写纸上就可以。” 小明和小红走向讲台拿起粉笔写下: 小红: #incl…

VS操作笔记1:添加项目与查看定义

1 在解决方案中添加项目 右击解决方案 点击“添加”——“新建项目”—— 创建新项目的方法与创建第一个时一样 创建之后,项目结构如下: 现在是两个项目,第一个c_test项目名称字体明显加粗,说明这是主项目,编译的时…

【Go基础】切片

切片 1. 切片的定义 切片(slice)是Golang中独有的数据类型。 数组有特定的用处,但是有不足之处 :运行时长度不可变。切片是随处可变的,它构建在数组之上,并且提供更强大的能力和便捷。 切片&#xff08…

vite构建vue项目目录简介

文章目录1.项目目录介绍2.开发插件安装3.vue组件中的语法规范(SFC 语法规范)4.npm run dev命令执行过程1.项目目录介绍 public 下面的不会被编译 可以存放静态资源assets 下面可以存放可编译的静态资源components 下面用来存放我们的组件App.vue 是全局组件main ts 全局的ts文…

react基础Day01-React概述脚手架搭建JSX组件

React基础知识点 目标 能够说出React是什么能够说出React的特点能够掌握React的基本使用能够使用React脚手架 什么是React (★★★) React是一个用于构建用户界面的javaScript库,起源于facebook的内部项目,后续在13年开源了出…

Mysql入门技能树-时间日期函数(二)-练习篇

EXTRACT 关于 Extract 操作和其它日期时间函数的对应关系,下列说法正确的是: 1.extract(mirosecond from date) 相当于 ms(date) 2.extract(second from date) 相当于 second(date) 3.extract(minute from date) 相当于 minute(date) 4.extract(hour f…

IO流(二)

1.对象流-ObjectInputStream和ObjectOutputStream(处理流包装流)的基本原理 看一个需求: 1.将int num100这个int数据保存到文件中,注意不是100数字,而是int 100,并且,能够从文件中直接恢复int 100 2.将Dog …

Excel工具类实现——基于poi5.2.3

初衷仅是因为网上的Excel工具类不是太老旧的方法,就是不是很满足我想法,就想要自己搞一个,不过还不支持合并单元格等复杂的操作,后续看看能不能优化,有大神有更好的方法,可以公众号联系我,让我学…

基于jsp+mysql+Spring的SpringBoot美容院预约管理系统设计和实现

基于jspmysqlSpring的SpringBoot美容院预约管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文…

编制万年历的历程

初入编程之道的学子大都试编过万年历。万年历有二种:一为只有西历的月历,另一为有农历对照的月历或日历。编写万年历程序可以练练手,加深对编程语言的理解。记得我初入此道是在1994年,我那时刚买了486电脑,也刚开始有视…

概率论基本概念

全概率公式 P(B)P(BA1)P(BA2)...P(BAn) P(B) P(B|A1)P(A1) P(B|A2)P(A2) ... P(B|An)P(An)P(BA1)P(BA2)...P(BAn) 事件A1,A2,…构成一个完备事件组且都有正概率 某一个事件概率 这个事件*其他完备事件划分联合概率之和 联合概率 联合概率指的…

线程安全问题(2)

锁的相关知识: 1)这就是类似于说我们ATM机上面有一把锁,同一时刻,如果说人们之间不相互认识,那么通过这把锁就进行限制了说就限制了说一次只能有一个人来进来取钱,我们通过这样的锁,就可以来进行避免上述这…

ESP8266 Arduino开发 搭建web服务器与客户端开发

一、wifi 相关配置 1.1 无线终端 wifi 模式 此模式中&#xff0c;esp8266 会连接到指定 wifi 进行工作。 #include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库const char* ssid "home"; // 连接WiFi名&#xff08;此处使用home为示例&…