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函数
相关文章:

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矩阵…...
智能数据驱动的风险管理:正大金融科技的创新实践
在不断变化的金融环境中,风险管理成为投资成功的关键因素。正大公司以数据驱动的智能风控体系为核心,通过深度学习、数据分析等技术创新,帮助投资者在复杂的市场条件下实现稳健操作和风险控制。本文将探讨正大如何利用科技手段提升风险管理效…...

贝尔不等式的验证
在量子计算机上运行一个实验,以演示使用Estimator原型违反CHSH不等式。 import numpy as npfrom qiskit import QuantumCircuit from qiskit.circuit import Parameter from qiskit.quantum_info import SparsePauliOpfrom qiskit_ibm_runtime import QiskitRuntim…...

GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)
前言 上个月的24年10.9日,我在朋友圈看到字节发了个机器人大模型GR2,立马去看了下其论文(当然了,本质是个技术报告) 那天之后,我就一直想解读这个GR2来着 然,意外来了,如此文《OmniH2O——通用灵巧且可全…...

伦敦金价格是交易所公布的吗?
今年以来,伦敦金价格波动可谓是波澜壮阔,盘中屡次刷新历史新高,目前已经冲上了2700的历史大关。面对高歌猛进的伦敦金价格,投资者除了进行交易之外,还有一点相关方面的知识是想了解的。例如,伦敦金价格是交…...
Oracle SQL Loader概念及用法
Oracle SQLLoader是Oracle数据库提供的一个高效的数据加载工具,它能够将外部数据(如CSV、DAT、Text等文件格式)快速加载到Oracle数据库中。以下是对Oracle SQLLoader的详细介绍: 一、主要功能 数据迁移:SQL*Loader常…...

ReactPress 是什么?
ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎Star。 ReactPress 是什么? ReactPress 是使用React开发的开源发布平台,用户可以在支持React和MySQL数据库的服务器上架设属于自己的博客、网站。也可以把 ReactP…...

MR30分布式IO模块与高效PLC协同
在现代工业自动化领域中,数据采集与控制系统扮演着至关重要的角色。其中,可编程逻辑控制器(PLC)和分布式IO模块(Distributed I/O Modules)是这一领域的两大核心组件。本文将详细介绍MR30分布式IO模块与PLC如…...

成都睿明智科技有限公司共赴抖音电商蓝海
在这个短视频风起云涌的时代,抖音作为现象级的社交媒体平台,不仅改变了人们的娱乐方式,更悄然间重塑了电商行业的格局。在这片充满机遇与挑战的蓝海中,成都睿明智科技有限公司凭借其敏锐的市场洞察力和专业的服务能力,…...

Android15音频进阶之音频策略加载及使用(九十一)
简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…...
Spring设值注入
设值注入(Setter Injection)是Spring框架中依赖注入的一种方式,通过Setter方法将依赖对象注入到目标对象中。设值注入在对象创建后,通过调用Setter方法完成依赖注入。 设值注入的优点 灵活性:设值注入允许在对象创建…...

Spring整合Mybatis过程
配置文件 springConfig --> [jdbcConfig mybatisConfig] jdbc配置文件进行基本的数据库连接池配置 mybatis配置文件进行SqlSessionFactory Bean 和 MapperScannerConfigurer Bean的创建 在Spring容器启动时,系统会根据配置创建并初始化所有MyBatis所需的Bean…...
常见HR问题篇
系列文章目录 第一章 C/C语言篇第二章 计算机网络篇第三章 操作系统篇第四章 数据库MySQL篇第五章 数据库Redis篇第六章 场景题/算法题第七篇 常见HR问题篇 本系列专栏:点击进入 后端开发面经 关注走一波 秋招阶段,面过很多大中小厂,积攒了…...
调用数据集mnist(下载+调用全攻略)
1、下载mnist数据集请自取: 通过百度网盘分享的文件:mnist 链接:https://pan.baidu.com/s/1ia3vFA73hEtWK9qU-O-4iQ?pwdmnis 提取码:mnis 下载后把数据集放在没有中文的路径下。 # 本文将下载好的数据集放在C:\DeepLearning\…...

【基础语法】Java Scanner hasNext() 和 hasNextLine() 的区别
OJ在线编程常见输入输出练习中默认模板 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.…...

react使用Fullcalendar 实战用法
使用步骤请参考:react使用Fullcalendar 卡片式的日历: 需求图: 卡片式的日历,其实我是推荐 antd的,我两个都写了一下都能实现。 antd 的代码: antd的我直接用的官网示例:antd 日历示例 i…...

优秀项目经理必知的10款项目管理软件推荐
本文精心为项目经理推荐30款国内外免费的项目管理软件,涵盖桌面应用与Web平台,其中不乏优秀的开源软件。这些工具旨在助力项目经理高效规划、跟踪与控制项目,无论是通过甘特图进行可视化管理,还是利用任务分配、团队协作等功能&am…...

植物神经紊乱不用怕,这些维生素来帮你!
你是否经常感到身体疲惫、情绪波动大、心悸、胸闷?这可能是植物神经紊乱在作祟。别担心,通过合理的维生素补充,可以有效缓解症状,提升生活质量。今天,我们就来聊聊植物神经紊乱患者应该补充哪些维生素。 🔍…...

NRF52832学习笔记(41)——添加串口库libuarte
一、背景 由于板子上不支持硬件流控,在使用 app_uart_fifo 库接收串口大数据时,频繁报 APP_UART_COMMUNICATION_ERROR 错误,多次重新初始化后,串口也不再产生中断了。查看官方论坛后决定使用串口异步库 libuarte。 二、简介 Li…...

Moore Perf System 1.1版本
Moore Perf System(一款性能分析工具) 提供可视化界面,在时间轴上按时间顺序显示 CPU 和 GPU 的事件、吞吐和性能指标,帮助开发人员方便、快速、准确的定位到系统级别的性能瓶颈,进而进行针对性分析和优化,…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...