MATLAB——矩阵操作

news2024/11/5 9:58:32

内容源于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函数

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

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

相关文章

原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验

文章目录 引言一、鸿蒙原生应用的高效开发二、用户隐私保护:安全访问管理三、开发者实用工具:应用分析与A/B测试四、应用审核与分发:快速上线4.1 应用加密:保护代码安全4.2 自动化测试与检测前移:提升应用质量 五、结语…

基于SSM+微信小程序的社团登录管理系统(社团1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 2、项目技术 3、开发环境 4、功能介绍 1、项目介绍 基于SSM微信小程序的社团登录管理系统实现了管理员及社团、用户。 1、管理员实现了首页、用户管理、社团管理、社团信息管理、社…

虚拟化环境中的精简版 Android 操作系统 Microdroid

随着移动设备的普及和应用场景的多样化,安全性和隐私保护成为了移动操作系统的重要课题。Google推出的Microdroid,是一个专为虚拟化环境设计的精简版Android操作系统,旨在提供一个安全、隔离的执行环境。本文将详细介绍Microdroid的架构、功能…

手动搭建 Java Web 环境

操作场景 本文档介绍如何在 Linux 操作系统的腾讯云云服务器(CVM)上手动搭建 Java Web 环境。 进行手动搭建 Java Web 环境,您需要熟悉 Linux 命令,例如 CentOS 环境下通过 YUM 安装软件 等常用命令,并对所安装软件使…

WPF+MVVM案例实战与特效(二十四)- 粒子字体效果实现

文章目录 1、案例效果2、案例实现1、文件创建2.代码实现3、界面与功能代码3、总结1、案例效果 提示:这里可以添加本文要记录的大概内容: 2、案例实现 1、文件创建 打开 Wpf_Examples 项目,在 Views 文件夹下创建窗体界面 ParticleWindow.xaml,在 Models 文件夹下创建粒子…

「Mac畅玩鸿蒙与硬件18」鸿蒙UI组件篇8 - 高级动画效果与缓动控制

高级动画可以显著提升用户体验,为应用界面带来更流畅的视觉效果。本篇将深入介绍鸿蒙框架的高级动画,包括弹性动画、透明度渐变和旋转缩放组合动画等示例。 关键词 高级动画弹性缓动自动动画缓动曲线 一、Animation 组件的高级缓动曲线 缓动曲线&#…

Golang--数组、切片、映射

1、数组 1.1 数组类型 var 数组名 [数组大小]数据类型 package main import "fmt"func main(){//1、定义一个数组var arr1 [5]intarr1[0] 100arr1[1] 200fmt.Println(arr1) //[100 200 0 0 0] } 1.2 数组的初始化方式 package main import "fmt" func …

Android音频进阶之PCM设备创建(九十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

【已解决】C# NPOI如何设置单元格格式

前言 设置单元格格式我们做表格必须要的一步,那么如何对单元格进行设置呢?直接上图看看效果图先,我做的是一个居中然后字体变化的操作,其他的查他的手册即可。 解决方法 直接上代码 IWorkbook excelDoc new XSSFWorkbook();…

系统学习算法:专题一 双指针

题目一: 算法原理: 首先我们可以对这道题目进行题目分类,像这种对数组以某种标准而进行一定的划分的题目,我们统称为数组分块问题,其中使用到的算法就是双指针算法,这里的指针并非真正int*这种&#xff0c…

Python异常检测 - LSTM(长短期记忆网络)

系列文章目录 Python异常检测- Isolation Forest(孤立森林) python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS) python异常检测-局部异常因子(LOF)算法 Python异常检测- DBSCAN Python异常检测- 单类支持向量机(…

【双指针】【数之和】 LeetCode 633.平方数之和

算法思想&#xff1a; 双指针枚举i,j&#xff1b;类似三数之和 class Solution { public:bool judgeSquareSum(int c) {long long sum0;vector<int> dp;dp.push_back(0);long long start1;while(sum < c){sum start *start;if(sum>c) break;else dp.push_back(…

前端Nginx的安装与应用

目录 一、前端跨域方式 1.1、CORS(跨域资源共享) 1.2、JSONP(已过时) 1.3、WebSocket 1.4、PostMessage 1.5、Nginx 二、安装 三、应用 四、命令 4.1、基本操作命令 4.2、nginx.conf介绍 4.2.1、location模块 4.2.2、反向代理配置 4.2.3、负载均衡模块 4.2.4、通…

Openlayers高级交互(18/20):根据feature,将图形适配到最可视化窗口

本示例的目的是介绍如何在vue+openlayers中使用extent,使用feature fit的方式来适配窗口。当加载到页面上几个图形要充分展示在窗口的时候,可以用这种方式来平铺到页面中。 效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文章,为小白群体提供基础知识及示…

每日OJ题_牛客_相差不超过k的最多数_滑动窗口_C++_Java

目录 牛客_相差不超过k的最多数_滑动窗口 题目解析 C代码 Java代码 牛客_相差不超过k的最多数_滑动窗口 相差不超过k的最多数_牛客题霸_牛客网 (nowcoder.com) 描述&#xff1a; 给定一个数组&#xff0c;选择一些数&#xff0c;要求选择的数中任意两数差的绝对值不超过 …

初始JavaEE篇——多线程(5):生产者-消费者模型、阻塞队列

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 文章目录 阻塞队列生产者—消费者模型生产者—消费者模型的优势&#xff1a;生产者—消费者模型的劣势&#xff1a; Java标准库中的阻…

后端eclipse——文字样式:UEditor富文本编辑器引入

目录 1.富文本编辑器的优点 2.文件的准备 3.文件的导入 导入到项目&#xff1a; 导入到html文件&#xff1a; ​编辑 4.富文本编辑器的使用 1.富文本编辑器的优点 我们从前端写入数据库时&#xff0c;文字的样式具有局限性&#xff0c;不能存在换行&#xff0c;更改字体…

Rust移动开发:Rust在Android端集成使用介绍

Andorid调用Rust 目前Rust在移动端上的应用&#xff0c;一般作为应用sdk的提供&#xff0c;供各端使用&#xff0c;目前飞书底层使用Rust编写通用组件。 该篇适合对Android、Rust了解&#xff0c;想看如何做整合&#xff0c;如果想要工程源码&#xff0c;可以评论或留言有解疑…

推荐一款高级的安装程序打包工具:Advanced Installer Architect

AdvanCEd Installer Architect是一款高级的安装程序打包工具&#xff0c;我们有时候可能用nsis用的多&#xff0c;Advanced Installer Architect也是一款打包工具&#xff0c;有兴趣的朋友也可以试试。有了Advanced Installer Architect你就可以创建MSI打包。 主要功能 *先进的…

关于Linux系统调试和性能优化技巧有哪些?

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于Linux系统调试和性能优化技巧的相关内容…