MATLAB | 矩阵元素引用之求下标或序号(sub2ind、ind2sub函数使用)

这篇具有很好参考价值的文章主要介绍了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),可以代入刚刚摆好的公式验算一下是否正确文章来源地址https://www.toymoban.com/news/detail-785314.html

到了这里,关于MATLAB | 矩阵元素引用之求下标或序号(sub2ind、ind2sub函数使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB:矩阵 矩阵的秩,矩阵的逆矩阵,矩阵的转置,矩阵每个元素减一,矩阵元素变换

    1.矩阵 A=[1,2,3;4,5,6;7,8,9]/A=[1 2 3;4 5 6;7 8 9](分号与空格用于区分每行之间的元素,分号区分行)   2.矩阵每个元素减一 B=A-1 3.矩阵元素变换 需要某一行或者某一列为0,可以用“:”代表一行 如A(:,3)代表第三列赋值为零    A( 3,:)代表第三行赋值为零     4.矩阵的秩

    2024年02月11日
    浏览(39)
  • JAVA练习百题之求矩阵对角线之和

    求一个3x3矩阵的对角线元素之和,我们需要将矩阵的左上到右下以及左下到右上两条对角线上的元素相加。 一个3x3矩阵如下所示: 左上到右下的对角线元素和为1 + 5 + 9 = 15,左下到右上的对角线元素和为7 + 5 + 3 = 15。 下面我们将使用三种不同的方法来实现这个任务,并分析它

    2024年02月04日
    浏览(27)
  • MATLAB中的矩阵元素提取和替换

    MATLAB中的矩阵元素提取和替换 在MATLAB中,提取和替换矩阵元素是非常常见的任务。这项任务通常涉及到基于索引的操作,MATLAB提供了各种强大的功能来实现这些操作。在本文中,我们将探讨如何使用MATLAB提取和替换矩阵中的元素,并提供相应的源代码示例。 矩阵元素提取 要

    2024年02月07日
    浏览(24)
  • MATLAB中找出矩阵的最值元素

    在MATLAB中,我们想要求出矩阵的最大元素,方法很简单就是两次调用MATLAB中的max()函数和min()函数。其中如果矩阵中还有复数的话,那么使用矩阵的模长进行比较。 例如求解如下所示的函数M的最大值和最小值:                                              代码部分如下

    2024年02月11日
    浏览(31)
  • matlab查找元素在矩阵中的位置

    find ismember 问题在于如果B是A的真子集时,如何方便高效判断B是否为A的一部分, 笔者给出如下方案. 如果B为A的重复子部分,需对结果进行保存.欢迎大家批评指正:

    2024年02月11日
    浏览(38)
  • C++ 图论之求图的连通块数量(邻接矩阵版)

    1. 连通块的定义 块内每个点之间都有一条路径。 2. 思路 我们可以用dfs深度优先搜索:从一个点出发遍历图将遍历过的点全部标记,标记过的点则不会再遍历到。 再写一个循环枚举所有的点(枚举起点),如果没标记就代表可以作为起点,数量加一,进行dfs标记点。 3. 代码

    2024年02月13日
    浏览(39)
  • MATLAB知识点: 矩阵元素的修改和删除

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.3.3 矩阵元素的修改和删除 我们可以直接利用等号赋值的方法对矩阵中引用位置的元素进行修

    2024年04月12日
    浏览(34)
  • Matlab | 去除数组或矩阵中的重复元素

    感谢@向着阳光生长的男孩的指正!有更好的方法,只要一句代码就搞定了。把三种方法整理了,一并放在下面了。 运行结果 ———————————————————————————————————————————————————————————

    2024年02月11日
    浏览(31)
  • matlab:输出一维矩阵中所有重复元素的索引

    参考:https://www.zhihu.com/question/496060981

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包