当前位置: 首页 > article >正文

Matlab:矩阵运算篇——矩阵

目录

1.定义

实例——创建矩阵

实例——创建复数矩阵

2.矩阵的生成

实例——M文件矩阵

2.利用文本创建

实例——创建生活用品矩阵

3.创建特殊矩阵

实例——生成特殊矩阵

 4.矩阵元素的运算

1.矩阵元素的修改

实例——新矩阵的生成

2.矩阵的变维

实例——矩阵维度修改

3.矩阵的变向

实例——矩阵的变向


1.定义

Matlab以矩阵作为数据操作的基本单位。矩阵是由m*n个数aij(i=1,2,...,m;j=1,2,...,n)排成的m行n列数表,记成。称为m*n矩阵,也可以记成或者。i表示行数,j表示列数,若m=n,则该矩阵为n阶矩阵(n阶方阵)。

用这个方法创建矩阵时,需要注意以下几点:

  • 输入矩阵时要以[]为其标识符;
  • 矩阵同行元素之间由空格(个数不限)或逗号分隔,行与行之间用分号或回车键分隔;
  • 矩阵大小不需要预先定义;
  • 若[]中无元素,表示空矩阵;
  • 如果不想显示中间结果,可以用分号结束。

实例——创建矩阵

创建元素均是15的3*3矩阵。matlab程序如下:

>>a=[15 15 15;15 15 15;15 15 15]
a=15 15 1515 15 1515 15 15

实例——创建复数矩阵

创建包含复数的矩阵A,其中,,matlab程序如下:

>> A=[[1,1+i,2];[2,3+2i,1]]A =1.0000 + 0.0000i   1.0000 + 1.0000i   2.0000 + 0.0000i2.0000 + 0.0000i   3.0000 + 2.0000i   1.0000 + 0.0000i

2.矩阵的生成

矩阵的生成除了直接输入法,还可以利用M文件生成法和文本文件生成法等。

1.利用M文件创建

当矩阵的规模比较大时,直接输入法就显得笨拙,出差错也不易修改。为了解决这些问题,可以将所要输入的矩阵按格式先写入一文本文件中,以m为其扩展名,即M文件。

M文件是一种可以在matlab 环境下运行的文本文件,它可以分为命令式文件和函数式文件两种。在此处主要用到的是命令式M文件,用它的简单形式来创建大型矩阵。在matlab 命令行窗口中输入M文件名,所要输入的大型矩阵即可被输入到内存中。

实例——M文件矩阵

(1)编制一个名为gmatrix的矩阵。

(2)在M文件编辑器中编制一个名为sample.m的M文件。

(注:M文件中的变量名与文件名不能相同,否则会造成变量名和函数名混乱。)


>> sample.M
gmatrix=[378 89 90 83 382 92 29;
3829 32 9283 2938 378 839 29;
388 389 200 923 920 92 7478;
3829 892 66 89 90 56 8980;
7827 67 890 6557 45 123 35]

(3)运行M文件。在matlab命令行窗口中输入文件名,结果如下:

>> samplegmatrix =378          89          90          83         382          92          293829          32        9283        2938         378         839          29388         389         200         923         920          92        74783829         892          66          89          90          56        89807827          67         890        6557          45         123          35

2.利用文本创建

即在文件夹(通常为work文件夹)中建立txt文件,在命令行窗口中直接调用这个文件名即可。

实例——创建生活用品矩阵

日用商品在三家商店中有不同的价格,其中,毛巾有三种3.5元、4元,5元;脸盆10元,15元,20元;单位量的售价用矩阵表示(行表示商店,列表示商品),用文本文件创建矩阵x。
(1)事先在记事本中建立文件并输入

3.5 4 5
10 15 20

(2)以goods.txt保存,在命令行窗口中输入

>> goodsgoods =3.5000    4.0000    5.000010.0000   15.0000   20.0000

由创建商品矩阵X。

3.创建特殊矩阵

可以直接用函数来生成某些特定的矩阵,以下是常用函数:

eye(n)创建n*n单位矩阵
eye(m,n)创建m*n单位矩阵
eye(size(A))创建与A维数相同的单位阵
ones(n)创建n*n全1矩阵
ones(m*n)创建m*n全1矩阵
one(size(A))创建与A维数相同的全1阵
zeros(m*n)创建n*n全0矩阵
zeros(size(A))创建与A维数相同的全0矩阵
rand(n)在[0,1]区间内创建一个n*n均匀分布的随机矩阵
rand(m*n)在[0,1]区间内创建一个m*n均匀分布的随机矩阵
rand(size(A))在[0,1]区间内创建一个与A维数相同的均匀分布的随机矩阵
compan(P)创建系数向量是 P的多项式的伴随矩阵
diag(v)创建一向量v中的元素为对角的对角阵
hilb(n)创建n*n的Hilbert矩阵
magiic(n)生成n阶魔方矩阵
sparse(A)将矩阵A转化为稀疏矩阵形式

实例——生成特殊矩阵

>> zeros(3)ans =0     0     00     0     00     0     0>> zeros(3,2)ans =0     00     00     0>> ones(3,2)ans =1     11     11     1>> ones(3)ans =1     1     11     1     11     1     1>> rand(3)ans =0.8147    0.9134    0.27850.9058    0.6324    0.54690.1270    0.0975    0.9575>> rand(3,2)ans =0.9649    0.95720.1576    0.48540.9706    0.8003>> magic(3)ans =8     1     63     5     74     9     2>> hilb(3)ans =1.0000    0.5000    0.33330.5000    0.3333    0.25000.3333    0.2500    0.2000>> invhilb(3)ans =9   -36    30-36   192  -18030  -180   180>> 

 4.矩阵元素的运算

1.矩阵元素的修改

矩阵中的元素与向量中的元素一样,可以进行抽取引用,编辑修改等操作。

矩阵元素修改命令
命令名说明
D=[A;B C]A是原矩阵,B,C中包含要扩充的元素,D为扩充后的矩阵
A(m,:)=[]删除A的第m行
A(:,n)=[]删除A的第n行
A(m,n)=a;A(m,:)=[a b...];A(:,n)=[a b...]对A的第m行第n列的元素赋值;对A的第m行的元素赋值;对A的第n列赋值;

实例——新矩阵的生成

修改矩阵元素,创建新矩阵

>> A=[1 2 3;4 5 6];
B=eye(2);
C=zeros(2,1);
D=[A;B C]D =1     2     34     5     61     0     00     1     0>> 

2.矩阵的变维

可以用符合:法和reshape函数法。reshape函数的调用形式如下:reshape(X,m,n),将已知矩阵变维成m行n列的矩阵。

实例——矩阵维度修改

演示矩阵的维度变换

>> A=1:12;
B=reshape(A,2,6)B =1     3     5     7     9    112     4     6     8    10    12>> C=zeros(3,4);
C(:)=A(:)C =1     4     7    102     5     8    113     6     9    12>> 

3.矩阵的变向

矩阵变相命令
Rot(90)将A逆时针方向旋转90°
Rot(90,K)将A逆时针方向旋转90°,k可以是正整数或负整数
Fliplr(X)将X左右翻转
flipud(X)将X上下翻转
flipdim(X,dim)qdim=1时对行翻转,dim=2时对列翻转

实例——矩阵的变向

>> A=1:12;
C=zeros(3,4);
C(:)=A(:)C =1     4     7    102     5     8    113     6     9    12>> flipdim(C,1)ans =3     6     9    122     5     8    111     4     7    10>> flipdim(C,2)ans =10     7     4     111     8     5     212     9     6     3>> 

相关文章:

Matlab:矩阵运算篇——矩阵

目录 1.定义 实例——创建矩阵 实例——创建复数矩阵 2.矩阵的生成 实例——M文件矩阵 2.利用文本创建 实例——创建生活用品矩阵 3.创建特殊矩阵 实例——生成特殊矩阵 4.矩阵元素的运算 1.矩阵元素的修改 实例——新矩阵的生成 2.矩阵的变维 实例——矩阵维度修…...

泛微ecode的页面开发发送请求参数携带集合

1.在开发过程中我们难免遇见会存在需要将集合传递到后端的情况,那么这里就有一些如下的注意事项,如以下代码: // 新增action.boundasync addQuestion(formData) {var theList this.questionAnswerList;var questionAnswerListArray new Ar…...

【结构光相机的精度极限】

1. 光源波长((\lambda)) 光源波长是决定结构光相机精度极限的核心因素之一。根据光学衍射极限理论,光的波长越短,能够分辨的细节越小,精度越高。 理论依据: 根据瑞利判据(Rayleigh Criterion&…...

Javaweb后端全局异常处理器

类名随便定义 这是异常处理的方法exceptionhandler responsebody作用,方法的响应值返回给前端,如果返回的是集合对象,会把集合对象转为json,再给前端响应返回...

SpringBoot缓存抽象:@Cacheable与缓存管理器配置

文章目录 引言一、SpringBoot缓存抽象概述二、Cacheable注解详解2.1 Cacheable的关键属性 三、缓存管理器配置四、自定义键生成策略五、缓存同步与失效策略六、SpringBoot缓存最佳实践总结 引言 缓存是提升应用性能的关键技术,SpringBoot提供了强大的缓存抽象层&am…...

下载文件,文件名乱码问题

C# .net framework 4.8 mvc 项目,做一个文件下载功能。 原项目是前端使用razor引擎方式做页面渲染的。 该项目原来就有一个模块是可供文件下载的,且文件名是中文。 但是我现在新增的这个模块,领导要求用js写,觉得razor太笨重。 …...

深入理解Linux进程管理:从基础到高级操作指南

1. 进程的定义、组成和环境 什么是进程? 想象你的电脑是一个大工厂,进程就是工厂里正在运行的机器。每个机器(进程)都有自己的任务,比如一台机器负责打印文件,另一台负责播放音乐。 进程的组成&#xff1…...

DOM与CSS:网页设计的核心力量

DOM与CSS:网页设计的核心力量 引言 在网页设计中,DOM(文档对象模型)与CSS(层叠样式表)是两个不可或缺的组成部分。它们共同构成了现代网页的骨架与外衣。本文将深入探讨DOM与CSS的关系、作用以及如何有效地运用它们来提升网页设计质量。 DOM:网页内容的结构化表示 什…...

深入解析pnpm与npm:颠覆传统包管理的技术革命与应用实践

深入解析pnpm与npm:颠覆传统包管理的技术革命与应用实践 引言:被node_modules支配的恐惧 "你的node_modules有多大?"这个灵魂拷问总能引发开发者会心一笑。当项目规模达到500MB时,npm install需要喝三杯咖啡的时间&am…...

OpenSSL 的主要功能及其示例命令

OpenSSL 是一个功能强大的开源工具包,用于处理各种与加密相关的任务,包括生成密钥、创建证书、加密解密数据、验证证书等。以下是 OpenSSL 的主要功能及其示例命令。 1.生成密钥 1.1 生成 RSA 私钥 openssl genrsa -out private_key.pem 2048• 说明&a…...

江科大51单片机笔记【11】AT24C02(I2C总线)

一、存储器 1.介绍 RAM的特点是存储速度特别快,但是掉电会丢失;ROM的特点是存储速度特别慢,但是掉电不会丢失 SRAM是所有存储器最快的,一般用于电脑的CPU高速缓存,容量相对较少,成本较高;DRAM…...

html css 笔记

01_浏览器相关知识 五大主流浏览器: Chrome Safari IE Firefox Opera (拥有自己的内核) 四大内核: webkit Trident Gecko blink. 02_网页相关知识 构成 网址 网站 网页 网页标准: 结构 表现 行为 分别对应 HTML CSS JavaScript 03_HTML简介 H…...

【一句话经验】ubuntu vi/vim 模式自动设置为paste

从centos过来,发现ubutun有些地方不习惯,尤其是vi的粘贴,默认自动进去了代码模式,导致每次粘贴必须得set paste,否则会出现问题。 解决办法非常简单,按照下面命令执行即可: cd ~ echo "…...

外层元素旋转,其包括在内的子元素一并旋转(不改变旋转中心),单元测试

思路&#xff1a;外层旋转后坐标&#xff0c;元素旋转后坐标&#xff0c;计算偏移坐标 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…...

Docker容器安装软件(完整版)

文章目录 一、安装Docker1.1 docker 相关的命令1.2 配置镜像加速 二. 安装es2.1 创建网络2.2 拉取镜像2.3 创建挂载点目录2.4 部署单点es&#xff0c;创建es容器2.5 编写elasticsearch.yml2.6 重启es容器2.7 测试Elasticsearch是否安装成功 三. 基于Docker安装Kibana3.1 拉取镜…...

「 机器人 」扑翼飞行器通过总气动力控制四自由度运动方法

一、前言 在扑翼飞行中,总气动力(Total Aerodynamic Force)是指扑翼在运动过程中受到的所有空气动力作用的合力。它是由以下两种主要力的合成结果: 1. 升力(Lift, ):垂直于空气流方向的力,用于支持飞行器(或生物)的重量。 2. 阻力(Drag, ):平行于空气流方向的力,…...

Axios简单说明,快速上手

Ajax&#xff1a;异步的JavaScript和XML 作用&#xff1a; 数据交换异步交互 Axios&#xff1a;就是对原生Ajax进行封装&#xff0c;简化书写&#xff0c;快速开发 使用逻辑&#xff1a; 首先要安装Axios&#xff0c;可以通过npm在项目中安装&#xff1a; 打开命令行工具…...

云服务器安装宝塔面板部署

单机部署(前端vue项目) 服务器安装宝塔面板 连接到服务器 使用 SSH 连接到你的服务器&#xff1a; ssh rootip安装宝塔面板 运行以下命令来安装宝塔面板&#xff1a; yum install -y wget wget -O install.sh http://download.bt.cn/install/install_6.0.sh sh install.sh安…...

Python 编程题 第九节:二分查找、移动0、旋转字符串、判断子序列

二分查找 双指针查找 无重复数字 lst[1,15,24,36,78,92,101] nint(input()) def binary_search(n,lst):left 0right len(lst) - 1while left<right:mid(leftright)//2if lst[mid]n:return midelif lst[mid]<n:leftmid1elif lst[mid]>n:rightmid-1return -1 print…...

docker-compose部署MongoDB分片集群

前言 MongoDB 使用 keyFile 进行 节点间身份验证,我们需要先创建一个 keyFile 并确保所有副本集的节点使用相同的 keyFile。 openssl rand -base64 756 > mongo-keyfile chmod 400 mongo-keyfiledocker-compose部署分片集群 无密码方式 # docker-compose-mongodb.yml s…...

通义万相 2.1:AIGC 领域的 “王炸” 组合如何颠覆创作生态?

引言 在数字化和人工智能的飞速发展中&#xff0c;AIGC&#xff08;AI生成内容&#xff09;技术已经成为推动创作、设计和内容生成领域创新的核心力量。而当通义万相2.1与蓝耘智算平台强强联手&#xff0c;这一“王炸”组合不仅提升了AIGC的效率&#xff0c;还为创作生态带来了…...

elementPlus之日历扩展功能

在这里做个记录&#xff0c;感觉用得还挺多的 功能有如下&#xff1a; 切换月份按钮对应日历视图和中间日期都要变选择日期日历视图要变点击日历视图中的不属于当前选中月份的日期即可触发日历视图变化以及中间日期也要变 代码如下&#xff1a; <template><div clas…...

C# NX二次开发:获取模型中所有表达式并且更新某个表达式的值

大家好&#xff0c;今天要讲的是关于NX中表达式的相关UFUN函数。 UF_MODL_ask_exps_of_part (view source) tag_tpart_tagInputTag of the part to be queriedint *number_of_expsOutputNumber of expressions returnedtag_t * *expsOutput to UF_*free*All the expressions i…...

Ollama本地部署deepseek-r1蒸馏版

Docker安装Ollama 拉取镜像 docker pull ollama/ollama​ 启动-使用GPU docker run -d --gpusall -p 11434:11434 --name ollama ollama/ollamadocker run : Docker 的核心命令&#xff0c;用于创建并启动一个新的容器。 -d : 后台模式&#xff08;detached mode&#xff09…...

计算机毕业设计:基于web的乡村旅游系统

基于web的乡村旅游系统mysql数据库创建语句基于web的乡村旅游系统oracle数据库创建语句基于web的乡村旅游系统sqlserver数据库创建语句基于web的乡村旅游系统springspringMVChibernate框架对象(javaBean,pojo)设计基于web的乡村旅游系统springspringMVCmybatis框架对象(javaBea…...

c#面试题整理9

1.遍历xml文档 2.解释一下这段 String s new String("xyz"); 这段在C#平台中&#xff0c;编译失败 3.说明一下抽象类 抽象类可以有构造函数 抽象类不能是静态和密封的类&#xff0c;密封的类表示无法继承&#xff0c;抽象类本身就不可实例化&#xff0c;加不好…...

【具身相关】legged_gym, isaacgym、rsl_rl关系梳理

【legged_gym】legged_gym, isaacgym代码逻辑梳理 总体关系IsaacGymlegged_gymrsl_rl三者的关系 legged_gym代码库介绍环境模块env 总体关系 IsaacGym Isaac Gym 是 NVIDIA 开发的一个高性能物理仿真平台&#xff0c;专门用于强化学习和机器人控制任务。它基于 NVIDIA 的 Phy…...

个人学习编程(3-12) 刷题

杨辉三角形&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 主要是发现规律&#xff1a;一、…...

Java Kryo 序列化与反序列化

Java Kryo 序列化与反序列化 Kryo 是一个高效的 Java 序列化框架,提供比 Java 原生序列化更快、更紧凑的序列化能力。它通常用于缓存、分布式通信和数据存储。 1. 引入 Kryo 依赖 如果你使用的是 Maven,可以添加以下依赖: <dependency><groupId>com.esoteri…...

侯捷C++课程学习笔记:构造函数那些事儿(四)

C 构造函数全面解析 上图节选自爱吃喵的鲤鱼 一、构造函数基础特性 1. 核心功能定位 ​对象初始化中枢&#xff1a;负责在对象创建时完成成员变量的初始化工作​生命周期唯一性&#xff1a;每个对象在其生命周期内仅被调用一次&#xff0c;类似出生证明的签发过程 2. 基础语…...