MATLAB | 矩阵元素引用之求下标或序号(sub2ind、ind2sub函数使用)
基本概念和公式简述
size(A)函数:
得到的是由两个数组成的一个行向量,第一个数是矩阵A的行,第二个数为矩阵A的列
序号:(x,y)
下标:通过计算得到的一个数
下标计算公式:(y-1)*m+x
*公式对应的条件是已知矩阵A为m*n,求序号为(x,y)所对应数的下标
已知序号求下标——sub2ind函数(需要已知矩阵)
格式:D=sub2ind(S,I,J)
当只对一个数求下标:
未知量 | 已知量 | ||
D | S | I | J |
要求的下标值 |
矩阵的行数和列数 所组成的向量 |
要求数的行号 | 要求数的列号 |
例:
已知矩阵A=[4 5 6] ,要求序号为(1,2)数的下标
我们先自己计算一下 (2-1)*1+1=2
matlab验算为
>> A=[4,5,6];
>> D=sub2ind(size(A),1,2)
D =
2
当需要对多个数求下标:
未知量 | 已知量 | ||
D | S | I | J |
要求的下标值 |
矩阵的行数和列数 所组成的向量 |
所有要求数的行号所组成的矩阵 | 所有要求数的列号所组成的矩阵 |
例1:
已知矩阵A= 4 5 6
1 2 3 ,要求序号为(1,2)、(2,2)、(2,1)、(2,3)的下标
我们先自己计算一下
(2-1)*2+1=3
(2-1)*2+2=4
(1-1)*2+2=2
(3-1)*2+2=6
用matlab验证
>> A=[4:6;1:3];
>> D=sub2ind(size(A),[1,2;2,2],[2,2;1,3])
%所有的行数为1、2、2、2 组成行数矩阵[1,2;2,2]
%所有的列数为2、2、1、3 组成列数矩阵[2,2;1,3]
%行数矩阵和列数矩阵依此对应组成要求的序号(1和2组合、2和2组合、2和1组合、2和3组合)
D =
3 4
2 6
例2:
已知矩阵A= 4 5 6,要求序号为(1,1)、(1,2)、(1,3)所对应数的下标
>> A=[4,5,6];
>> D=sub2ind(size(A),[1,1,1],[1,2,3])
D =
1 2 3
已知序号求下标——ind2sub函数(不需要已知矩阵)
格式:[I,J]=ind2sub(S,D)
未知量 | 已知量 | ||
I | J | S | D |
所有要求数的行号 | 所有要求数的列号 | 矩阵的行号和列号所组成的矩阵 | 数的下标 |
例:
已知5*5的矩阵,要求下标为1、3、5所对应的数的序号(x1,y1)、(x2,y2)、(x3,y3)
我们先来列一下公式
(y1-1)*5+x1=1
(y2-1)*5+x2=3
(y3-1)*5+x3=5
用matlab来算一下
>> [I,J]=ind2sub([5,5],[1,3,5])
I =
1 3 5
J =
1 1 1
I依次对应x1、x2、x3
J依次对应y1、y2、y3
所以结果为(1,1)、(3,1)、(5,1),可以代入刚刚摆好的公式验算一下是否正确
MATLAB | 矩阵元素引用之求下标或序号(sub2ind、ind2sub函数使用)相关推荐
- matlab 矩阵元素求和、求均值(期望)和均方差
matlab中矩阵元素求和.求期望和均方差 在matlab中求一个矩阵中元素的和可以自己编写for循环来完成,这样比较方便,想求那些数据的和都可以做到,然而效率比较低,如果数据量大程序会跑好长时间.所 ...
- 矩阵期望 matlab,matlab 矩阵元素求和、求均值(期望)和均方差
matlab中矩阵元素求和.求期望和均方差 在matlab中求一个矩阵中元素的和可以自己编写for循环来完成,这样比较方便,想求那些数据的和都可以做到,然而效率比较低,如果数据量大程序会跑好长时间.所 ...
- 1.7 matlab矩阵元素的引用(可通过下标和序号引用)
例1 a = [1 2 3;4 5 6] a = 1 2 34 5 6 给矩阵a的第三行第五列赋值200,其他位置元素自动补为0 a(3,5)=20 a = 1 2 3 0 04 5 6 0 00 0 ...
- matlab矩阵定义、矩阵元素引用、矩阵操作
矩阵定义 直接输入法 A=[1 2 3;4 5 6;7 8 9] 矩阵用方括号 "[ ]" 括起 矩阵同一行中的元素之间用 空格 或 逗号 分隔 矩阵行与行之间用 分号 分开 直接 ...
- 矩阵期望 matlab,matlab中矩阵元素求和、求期望和均方差
在matlab中求一个矩阵中元素的和可以自己编写for循环来完成,这样比较方便,想求那些数据的和都可以做到,然而效率比较低,如果数据量大程序会跑好长时间.所以我们可以转而用matlab提供的sum函数 ...
- matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...
导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...
- Matlab 矩阵元素选取方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 1.简单切片 2.根据条件选取 3.根据下标选取对应元素 1)简介 2)二维选取 3)多维选取 总结 前言 提示:这里 ...
- MATLAB矩阵元素的处理
1.矩阵元素的取整 向下取整:floor() 向上取整:ceil() 四舍五入取整:round() 截尾取整:fix() 去掉小数部分 例2.3-5 A = [2.3,2.7;-2.3,-2.7] A ...
- matlab取矩阵元素的模,Matlab矩阵元素提取
有一个1*41的矩阵,矩阵的每个元素都是4*4的矩阵,如何提取4*4的矩阵中的特定元素? 例如提取T(1)矩阵中的第一行第一列的元素. T(1) = 1 0 0 ...
最新文章
- linux常用命令1
- VS2019 开发第一个Windows驱动程序
- 有程序在记录你的键盘输入_12个用Java编写基础小程序amp;经典案例(收藏)
- mysql 分库分表 ~ 柔性事务
- java如何对一个表达式开根号_作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?...
- MainService流程
- 【ORACLE 高可用】ORACLE STREAM 基于用户的流复制配置 案例
- Nagios LDAP用户pager被清空问题
- 管理者和领导者的区别_如何赢得领导者的尊重
- WPF:Hyperlink如何绑定数据
- 利用cloudera manager搭建Hadoop集群
- android ntp服务器配置
- 爱粤语软件:普通话和粤语转换
- 【图书推荐】中国首部敏捷开发案例集《敏捷开发一千零一夜》
- r library car_医学统计与R语言:双因素重复测量方差分析(Twoway repeated measures ANOVA)...
- 基于ssm与maven,使用easyui--tree生成类似部门管理树形结构图
- 程序员被人喜欢的13点原因
- Android 九宫格图片展示的实现
- gem意思_GEM什么意思
- 2021年山东省安全员C证考试资料及山东省安全员C证找解析