MATLAB——矩阵操作

内容源于b站清风数学建模

数学建模清风老师《MATLAB教程新手入门篇》https://www.bilibili.com/video/BV1dN4y1Q7Kt/  

目录

1.MATLAB中的向量

1.1向量创建方法

1.2向量元素的引用

1.3向量元素修改和删除

2.MATLAB矩阵操作

2.1矩阵创建方法

2.2矩阵元素的引用

2.3矩阵元素修改和删除

2.4矩阵的拼接和重复

2.5reshape函数

2.6sort函数——对向量或矩阵进行排序

2.7sortrows

2.8flip/fliplr/flipud函数

2.9rot90

3.矩阵的运算

3.1调用函数

3.1.1sum求和函数

3.1.2prod乘积函数

3.1.3cumsum累计和函数

3.1.4diff差分

3.1.5median中位数

​编辑3.1.6mode计算众数

3.1.7var计算方差

3.1.8std计算标准差

3.1.9min

3.2算数运算

3.2.1加法

3.2.2减法

3.2.3乘法

3.2.4除法

3.2.5乘方

3.2.6逆矩阵

3.2.7转置

3.3关系运算

3.4逻辑运算

3.4.1运算优先级

3.4.2&&和||

3.4.3利用逻辑值引用矩阵元素

3.4.4all,any和find

3.5集合运算

3.5.1unique函数

3.5.2ismember函数

3.5.3intersect函数——交集、union、setdiff、setxor

3.6线性代数相关函数

3.6.1det行列式 rank秩 trace迹 rref最简型矩阵 inv逆矩阵 transpose转置矩阵

3.6.2triu上三角,tril下三角

练习题

3.6.3 eig计算特征值和特征向量

3.6.4 norm函数


1.MATLAB中的向量

1.1向量创建方法

1.直接输入法

2.冒号法

3.利用MATLAB函数输入

linspace等差数列

linspace(a,b):该命令用来创建一个行向量,向量中的第一个元素为a,最后一个元素为b,形成总数为100个元素的线性间隔的向量

linspace(a,b,n):该命令用来创建一个行向量,向量中的第一个元素为a,最后一个元素为b,形成总数为n个元素的线性间隔的向量

linspace和冒号法的区别:

1.linspace不需要指定步长,MATLAB会根据你给定的元素个数n自动计算出来;而使用冒号法可以自己指定步长

2.linspace生成的向量的最后一个元素一定是b,而使用冒号法a:step:b生成的向量最后一个元素不一定是b

3.循环语句用冒号法;绘制函数图形,linspace得到的x轴范围会更准确,因为linspace最后一个一定是2*pi,而0:0.1:2*pi最后一个元素不一定是2*pi

logspace等比数列

logspace(a,b):创建一个行向量,第一个元素为10^a,最后一个元素为10^b,形成总共50个元素的等比数列

logspace(a,b,n):创建一个行向量,第一个元素为10^a,最后一个元素为10^b,形成总共n个元素的等比数列

1.2向量元素的引用

计算向量元素个数:length/numel

单个元素引用   a(ind)  多个索引:将ind设置为向量

end索引

1.3向量元素修改和删除

a(1)=4  a(1)=[]

2.MATLAB矩阵操作

2.1矩阵创建方法

1.直接输入法

2.函数创建法 zeros、ones、eye、rand、randi、randn(阿楠matlab有)

diag创建对角矩阵或获取矩阵的对角元素(diagonal对角)

输入向量获取矩阵

输入矩阵则获取对角元素

blkdiag创建分块对角矩阵(block diagonal)

2.2矩阵元素的引用

a(row,column)

计算矩阵大小size

1.size(A) 例如A是3x4矩阵 size(A)返回[r,c]=3,4

2.size(A,dim)返回在维度dim上的长度。dim=1表示行,dim=2表示列

size(A,1)行数  size(A,2)列数

length用在矩阵返回行和列较大的值

numel会返回矩阵元素总数

线性索引

A(:) 将A中所有元素按线性索引顺序重构成一个列向量

sub2ind将矩阵下标转换成线性索引

ind = sub2ind(sz,row,col)针对大小为sz的矩阵返回由row和col指定的行列下标的对应线性索引ind

ind2sub线性索引转换为下标

2.3矩阵元素修改和删除

删除只能删除整行或整列

用线性索引删除时,将剩余元素放入到一个向量中

2.4矩阵的拼接和重复

横向拼接[A,B]或者horzcat(A,B)

纵向拼接[A,B]或者vercat(A,B)

2.5reshape函数

按列优先规律重新组织矩阵元素

2.6sort函数——对向量或矩阵进行排序

2.6.1对向量进行排序

sort函数可以有两个返回值

[sort_v,ind]=sort(v)%sort_v是排序后的向量,ind是排序后的向量(即sort_v)中的每个元素在原向量(v)中的索引

v(ind)的结果==sort_v

2.6.2对矩阵排序

sort(A,dim)

(1)sort(A,1)==sort(A)

(2)'descend'降序排列

(3)可以返回两个值,加一个索引ind

2.7sortrows

score = [95 80 85 79;95 67 78 90;95 67 78 75;95 67 64 73;86 85 82 84;86 87 82 88]

sort_score1 = sortrows(score,1)%按第一行升序排列

sort_score = sortrows(score,[1,2,3,4])%第一科成绩相同,比第二科…

降序排列

sort_score = sortrows(score,[1,2,3,4],'descend')

降序加升序

2.8flip/fliplr/flipud函数

2.9rot90

3.矩阵的运算

3.1调用函数

3.1.1sum求和函数

3.1.2prod乘积函数

3.1.3cumsum累计和函数

3.1.4diff差分

3.6mean平均值

3.1.5median中位数

3.1.6mode计算众数

mode函数不能加omitnan

3.1.7var计算方差

可加omitnan

3.1.8std计算标准差

3.1.9min

自动忽略nan

3.2算数运算

3.2.1加法

3.2.2减法

3.2.3乘法

3.2.4除法

3.2.5乘方

3.2.6逆矩阵

A^(-1) or inv(A)

3.2.7转置

英文单引号'

3.3关系运算

3.4逻辑运算

nan和复数不能逻辑运算

logical函数 普通矩阵转换成逻辑矩阵

3.4.1运算优先级

3.4.2&&和||

3.4.3利用逻辑值引用矩阵元素

3.4.4all,any和find

find

3.5集合运算

3.5.1unique函数

矩阵

3.5.2ismember函数

加rows,每一行作为一个整体

3.5.3intersect函数——交集、union、setdiff、setxor

union

3.6线性代数相关函数

3.6.1det行列式 rank秩 trace迹 rref最简型矩阵 inv逆矩阵 transpose转置矩阵

3.6.2triu上三角,tril下三角

练习题

clc,clear all;
n = 4;
num = n*(n-1)/2;%上三角部分个数
A = zeros(n);
A(triu(true(n),1)) = randi([0,9],num,1);%全一上三角随机生成
A = A+A'+diag(randi([0,9],n,1))

3.6.3 eig计算特征值和特征向量

3.6.4 norm函数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL基础—2

1.左外连接查询(left join on) A - A∩B 左外连接查询两张表条件都满足的数据,以及左边表(A表)存在的数据(以左边表为主查询表)。 A - A∩B (A和A交B)。 示例:使用左外连接将dept表作为主查询表,查询员工编号、员工姓…

【Java并发】乐观锁、悲观锁、CAS、版本号机制

前言 在现代计算机系统中,处理并发操作时,锁机制是至关重要的。本文将介绍乐观锁、悲观锁以及CAS(Compare and Swap)这三种常见的并发控制技术,帮助理解它们的原理和应用场景。 1.悲观锁 1.1 定义 悲观锁是一种在访…

【优选算法】——二分查找!

目录 1、二分查找 2、在排序数组中查找元素的第一个和最后一个位置 3、搜索插入位置 4、x的平方根 5、山脉数组的封顶索引 6、寻找峰值 7、寻找旋转排序数组中的最小值 8、点名 9、完结散花 1、二分查找 给定一个 n 个元素有序的(升序)整型数组…

Fooocus图像生成软件本地部署教程:在Windows上快速上手AI创作

文章目录 前言1. 本地部署Fooocus图像生成软件1.1 安装方式1.2 功能介绍 2. 公网远程访问Fooocus3. 固定Fooocus公网地址 前言 本篇文章将介绍如何在本地Windows11电脑部署开源AI生图软件Fooocus,并结合Cpolar内网穿透工具轻松实现公网环境远程访问与使用。 Foooc…

elasticSearch 7.12.1 Docker 安装ik分词

一、下载 https://github.com/infinilabs/analysis-ik/releases/tag/v7.12.1 将文件解压,复制到docker挂载的目录 docker ps#重启docker docker restart f7ec58e91f1f 测试 GET _analyze?pretty {"analyzer": "ik_max_word","text&qu…

智慧汇聚:十款企业培训工具打造学习型企业

在当今快速变化的商业环境中,企业要想保持竞争力,就必须不断适应新技术、新市场和新的工作方式。构建一个学习型企业,不仅能够促进员工的个人成长,还能增强团队的整体能力和企业的创新能力。为了实现这一目标,借助先进…

【Searxng】Searxng docker 安装

SearXNG将用户的查询请求分发至多个支持的搜索引擎,并收集返回的结果进行汇总处理。在这个过程中,它通过内置的过滤器功能屏蔽广告和其他不相关内容,确保搜索结果的纯净度。 一键部署 docker run \--name searxng \-p ????:8080 \-v ~/s…

FastAPI 请求体解析:基础概念与综合应用

FastAPI 请求体解析:基础概念与综合应用 本文深入探讨了 FastAPI 中的请求体概念,强调使用 Pydantic 模型来声明请求体数据结构。通过具体示例,展示了如何定义请求体、可选参数及默认值,提升数据验证和类型提示的便利性。文章还说…

Linux下的Debugfs

debugfs 1. 简介 类似sysfs、procfs,debugfs 也是一种内存文件系统。不过不同于sysfs一个kobject对应一个文件,procfs和进程相关的特性,debugfs的灵活度很大,可以根据需求对指定的变量进行导出并提供读写接口。debugfs又是一个Li…

【论文速读】Optimization-based Prompt Injection Attack to LLM-as-a-Judge

基于优化的提示词注入攻击 摘要引言问题描述LLM-as-a-judge威胁模型攻击者知道什么 JUDGEDECEIVER 细节概述生成影子候选回复公式化为优化问题Target-aligned generation lossTarget-enhancement lossAdversarial perplexity loss优化问题 求解优化问题 摘要 LLM-as-a-Judge 利…

单智能体carla强化学习实战工程介绍

有三个工程: Ray_Carla: 因为有的论文用多进程训练强化学习,包括ray分布式框架等,这里直接放了一个ray框架的示例代码,是用sac搭建的,obs没用图像,是数值状态向量值(速度那些)。 …

PD取电快充协议芯片,XSP08Q在灯具中的应用

前言 随着快充技术不断的发展 USB Type-C端口的普及 PD快充成了电子设备中的宠儿,在各种电子设备领域都能见到PD快充的身影,不得不说快充技术的出现让电子设备在充电的速度上得到前所未有的体验,大大的缩短了设备的充电时间。快充协议芯片不…

【AI开源项目】Botpress - 开源智能聊天机器人平台及其部署方案

文章目录 Botpress 概述Botpress 的定位 Botpress 的主要特点1. OpenAI 集成2. 易于使用3. 定制和扩展性4. 多平台支持5. 集成和扩展 API6. 活跃的社区和详尽的文档 部署方案集成集成开发集成部署机器人示例开发工具代理本地开发先决条件从源代码构建 Botpress 如何解决常见问题…

【天线&运输】交通事故严重程度检测系统源码&数据集全套:改进yolo11-HSFPN

改进yolo11-ASF-DySample等200全套创新点大全:交通事故严重程度检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.01 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示”展示的系…

使用 Elastic、OpenLLMetry 和 OpenTelemetry 跟踪 LangChain 应用程序

作者:来自 Elastic Bahubali Shetti Langchain 应用程序的使用正在增长。构建基于 RAG 的应用程序、简单的 AI 助手等的能力正在成为常态。观察这些应用程序更加困难。考虑到现有的各种选项,本博客展示了如何将 OpenTelemetry 检测与 OpenLLMetry 结合使…

揭秘Scam-as-a-Service:警惕钓鱼攻击的产业化

2024年6月开始,CertiK安全团队监控到大量相似的phishing/drainer transaction,仅6月份监控到的涉案金额就超过5500万美元,进入8、9月份后,相关钓鱼地址的活动更加频繁,钓鱼攻击有愈演愈烈的架势。整个2024年第三季度&a…

前端Election

一.什么是Election 1.一款应用广泛的跨平台和桌面应用开发框架。 2.本质 Election的本质是结合了Chromium与Node.js 3.构建 使用HTML ,CSS,JS等Web技术构建桌面应用程序。 只要最后能转换成html css js即可 二.流程模型 1.主进程 关于node.js的任何api都在这里调用 一个纯…

如何在Linux系统中使用SSH进行安全连接

如何在Linux系统中使用SSH进行安全连接 SSH简介 安装SSH 在Debian/Ubuntu系统中安装 在CentOS/RHEL系统中安装 启动SSH服务 验证SSH是否安装成功 SSH配置 配置监听端口 配置登录方式 SSH客户端 安装SSH客户端 使用SSH客户端 SSH密钥认证 生成SSH密钥对 复制公钥到远程服务器…

SpringBoot源码解析(一)

SpringBoot自动装配原理 SpringBootApplication注解 我们在使用SpringBoot时,通常使用的是SpringBootApplication这个注解,比如: 而这个注解的定义为下图,可以发现这个注解上有另外三个注解:SpringBootConfiguration…

BES2600WM---HiLink RM56 EVK

0 Preface/Foreword 0.1 路径 OpenHarmony/device_soc_bestechnic - 码云 - 开源中国 https://github.com/Hi-LinkDuino/RM56 1 环境搭建 1.1 安装依赖工具 sudo apt-get install build-essential gcc g make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc ope…