matlab矩阵操作

2023-10-26


前言

矩阵是matlab中最基本的数据对象,matlab的大部分运算和命令都是在矩阵运算的意义下进行的。


一、矩阵的建立

  • 直接输入法:
    将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔。

A=[1,2,3;4,5,6;7,8,9]

A =

 1     2     3
 4     5     6
 7     8     9
  • 套娃式建立:利用已建立好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成。类似于分块

A=[1,2,3;4,5,6;7,8,9];
B=[-1,-2,-3;-4,-5,-6;-7,-8,-9];
C=[A,B;B,A]

C =

 1     2     3    -1    -2    -3
 4     5     6    -4    -5    -6
 7     8     9    -7    -8    -9
-1    -2    -3     1     2     3
-4    -5    -6     4     5     6
-7    -8    -9     7     8     9
  • 利用实部矩阵和虚部矩阵来构成复数矩阵。

B=[1,2,3;4,5,6];
C=[6,7,8;9,10,11];
A=B+i*C

A =

1.0000 + 6.0000i 2.0000 + 7.0000i 3.0000 + 8.0000i
4.0000 + 9.0000i 5.0000 +10.0000i 6.0000 +11.0000i


二、向量的产生

冒号表达式

  • 初始值:步长:终止值

t=0:1:5

t =

 0     1     2     3     4     5
  • linspace函数
    linspace(第一个元素,最后一个元素,元素总数) 当n省略时,自动产生100个元素

x=linspace(0,pi,6)

x =

     0    0.6283    1.2566    1.8850    2.5133    3.1416

结构矩阵和单元矩阵

结构矩阵

结构矩阵元素.成员名=表达式

a(1).x1=10;a(1).x2=‘liu’;a(1).x3=[11,21;34,78];
a(2).x1=12;a(2).x2=‘wang’;a(2).x3=[34,191;27,578];
a(3).x1=14;a(3).x2=‘cai’;a(3).x3=[13,890;67,231];

单元矩阵

建立单元矩阵也是直接输入,只是单位矩阵元素用大括号括起来。

b = {0,‘liu’,[11,21;34,78];12,‘wang’,[34,191;27,578];14,‘cai’,[13,890;67,231]}

b =

3×3 cell 数组

[ 0]    'liu'     [2×2 double]
[12]    'wang'    [2×2 double]
[14]    'cai'     [2×2 double]

三、矩阵的操作

矩阵元素的引用

  • 通过下标来引用
    A(3,2)表示A矩阵第三行第二列的元素。

A = [1,2,3;4,5,6];
A(4,5)=10

A =

 1     2     3     0     0
 4     5     6     0     0
 0     0     0     0     0
 0     0     0     0    10
  • 通过序号来引用
    在matlab中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存第二列元素,一直到最后一列元素。
    矩阵元素的序号就是矩阵元素在内存中的排列顺序。

A = [1,2,3;4,5,6]

A =

 1     2     3
 4     5     6

A(3)

ans =

 2

序号与下标是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号(j-1)×m+i。
矩阵元素的序号与下标可以利用sub2ind和ind2sub函数相互转换。

  • sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:
    D = sub2ind(S,I,J)
    D — 序号
    S — 行数和列数组成的向量
    I — 转换矩阵元素的行下标
    J — 转换矩阵元素的列下标

A=[1:3;4:6]

A =

 1     2     3
 4     5     6

D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])

D =

 1     2
 6     4

ind2sub函数:将把矩阵元素的序号转换对应的下标,其调用格式为:
[I,J]=ind2sub(S,D)

D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])

D =

 1     2
 6     4

[I,J]=ind2sub([3,3],[1,3,5])

I =

 1     3     2

J =

 1     1     2

利用冒号表达式获得一部分子矩阵

A(i,:)第i行的全部元素
A(:,j)第j列的全部元素
A(i:i+m,k:k+m)第i-i+m行内且在第k-k+m列中的所有元素
A(i:i+m,:)第i-i+m行的全部元素

A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15]

A =

 1     2     3     4     5
 6     7     8     9    10
11    12    13    14    15

A(1:2,:)

ans =

 1     2     3     4     5
 6     7     8     9    10

A(2:3,1:2:5)

ans =

 6     8    10
11    13    15

end运算符:表示某一维的末尾元素下标。

A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];
A(end,:)

ans =

16    17    18    19    20

A([1,4],3:end)

ans =

 3     4     5
18    19    20

删除矩阵

-用空矩阵删除矩阵的元素

A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];
A(:,[2,4])=[]

A =

 1     3     5
 6     8    10
11    13    15
16    18    20

改变矩阵的形状

reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。
【注】reshape函数只改变原矩阵的行数和列数,但并不改变原矩阵元素个数及存储顺序。

A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];
y=reshape(A,5,4)

y =

 1     7    13    19
 6    12    18     5
11    17     4    10
16     3     9    15
 2     8    14    20

A(:) 将矩阵A的每一列元素堆叠起来,成为一个列向量。

A=[1,2,3,4,5;6,7,8,9,10]

A =

 1     2     3     4     5
 6     7     8     9    10

B=A(:)

B =

 1
 6
 2
 7
 3
 8
 4
 9
 5
10

A(:)等价于reshape(A,10,1)。


总结

本节主要介绍了在matlab中对矩阵的基本操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab矩阵操作 的相关文章

  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 动态调整自定义刻度数

    Taking SO 的一个例子 https stackoverflow com a 7139485 97160 我想根据当前视图调整轴刻度 这是默认行为 除非设置自定义的刻度数 下图展示了由此产生的行为 左侧是默认行为 右侧是带有自定义刻度
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu

随机推荐

  • 关于实现订单超时的几种方案

    更新 2022 10 28 说明 关于使用rabbitmq实现订单超时的部分说明有错误 首先mq是可以实现自定义超时时间的 我们可以在创建队列queue ordercreate时不设置它的x message ttl参数 转而在代码里设置消息
  • 用卷积神经网络实现手写字体的识别

    代码如下所示 coding utf 8 Time 2018 4 4 13 22 Author mgliu FileName mnist py Software PyCharm Community Edition coding utf 8 i
  • 使用R语言进行股票价格预测

    目录 1 准备工作 2 数据准备 3 数据预处理 4 构建和训练模型 5 评估模型
  • win7定位位置服务器,win7 定位 服务器地址

    win7 定位 服务器地址 内容精选 换一换 反向解析主要应用于自建邮箱服务器 可以提高邮箱服务器IP地址和域名的信誉度 多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件 以逃避追踪 设置了邮箱服务器IP地址到域名的反
  • eu5,eu7,ex3,ex5安装第三方app

    本教程介绍了 如何简单快速的在北汽的eu5 eu7 ex3 ex5等车安装第三方app应用 比如高德地图 QQ音乐 大大提高车机的娱乐性和可用性 安装过程简单明了 只需要一个U盘就可以了 不需要输入任何命令 按照教程点击按钮就可以完成所有操
  • 车联网安全基础知识学习笔记

    全球车联网产业生态不断丰富完善 当前 全球数字经济快速发展 新一代信息通信技术与各行各业融合渗透 车联网 工业互联网 物联网等新型产业生态不断壮大 有力推动了汽车 交通等传统产业的数字化 网络化 智能化发展 也逐步衍生出智慧出行 交通数字化
  • JeeSite简介

    系统管理 SYS 模块 包括组织架构 用户管理 机构管理 区域管理 菜单管理 角色权限管理 字典管理等功能 内容管理 CMS 模块 包括内容管理 文章 链接 栏目管理 站点管理 公共留言 文件管理 前端网站展示等功能 在线办公 OA 模块
  • 【MRI图像超分辨率入门及研究综述(个人总结版)】

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 了解核磁共振成像 1 机械系统 2 物理学原理 3 数据类型及类型转换 类型 格式转换 1 为什么转换 2 如何进行转换 4 成像过程 k space 定
  • 012-Unity中的几种Find方法

    版本 2018 3 14 1 transform Find 1 可以查找隐藏对象 2 支持路径查找 3 查找隐藏对象的前提是transform所在的根节点必须可见 即active true 注意 只能查找挂载物体上的子物体 否则查不到 2
  • vite require is not defined

    vuex使用webpack中的require context modules true js 获取目录下的所有文件 升级vue3使用vite报 require is not defined import createStore from v
  • element的分页怎么改中文配置_ElementUI pagination分页 自定义配置

    如何使用 ElementUI 自定义分页呢 尽管ElementUI比较全面的提供了分页 但实际开发中的需求是多种多样的 比如我需要把下图中的下拉选择每页的数据条数 换成可以手动输入的形式 并且把他的位置放到前往xx页的左边位置 实现代码如下
  • airpods耳机敲击没反应_为什么华强北AirPods出了那么多仿制品还有很多人不怕被坑,愿意买?...

    原因很简单 原版AirPods功能过于强大 体验感极好 设计非常细节 其次 华强北AirPods价格比原版优惠力度大 原版AirPods外观上 名称 经销商 UPS QI充电器指示 充电外壳采用反磁设计 打开后因为磁极排斥而不会自由下落 耳
  • Google Mock

    View Edit History Content 什么是Mock Google Mock概述 参考文档 最简单的例子 典型的流程 自定义方法 成员函数的期望行为 我改过的例子 现实中的例子 Mock protected private方法
  • 设计模式之观察者模式

    案例展示 原理分析 代码实现 Observer 接口 观察者接口 由观察者来实现 interface Observer fun update temperatrue Float pressure Float humidity Float O
  • 详解Python中的切片(一看就懂版)

    前言 在我们使用Python的时候 经常会听到 切片 这个词 那什么是切片呢 切片是对序列数据 列表 元组 字符串 根据下标索引 对一定范围内数据的获取 简单来说就是 通过下标索引获取一定范围内的元素 基本索引 什么叫基本索引呢 在Pyth
  • 深度学习的基本概念总结

    1 基本概念 1 1 为什么要使用深层网络 深度神经网络的学习是特征递进的 浅层的神经元只能学习一些低层次的简单特征 如边缘 纹理 而深层神经网络可以学到更高级特征 深层网络的隐藏单元数目较少 隐藏层数目较多 若浅层网络想达到同样的计算结果
  • Spring使用三级缓存解决循环依赖

    前言 Spring 中使用了三级缓存的设计 来解决单例模式下的属性循环依赖问题 这句话有两点需要注意 解决问题的方法是 三级缓存的设计 解决的只是单例模式下的 Bean 属性循环依赖问题 对于多例 Bean 和 Prototype 作用域的
  • 查看264NAL信息工具

    用easyice只可以查看TS包的帧类型 google了一下 发现了这个工具HEVCBSAnalyzer https github com latelee HEVCBSAnalyzer 从git上下载下来 直接使用release文件夹下的工
  • java 代码扫描_静态代码扫描 (四)——Java 资源关闭研究

    这是静态代码扫描系列文章的第四篇 前三篇文章介绍了如何使用 PMD 和 Findbugs 自定义规则 我们火线团队最近一直在研究 java 资源关闭的检查规则 发现市面上开源的工具针对资源关闭的检测都存在一定不足 同时也无法满足我们业务的需
  • matlab矩阵操作

    矩阵及其操作 前言 一 矩阵的建立 二 向量的产生 冒号表达式 结构矩阵和单元矩阵 结构矩阵 单元矩阵 三 矩阵的操作 矩阵元素的引用 利用冒号表达式获得一部分子矩阵 删除矩阵 改变矩阵的形状 总结 前言 矩阵是matlab中最基本的数据对