Arrays 创建一个新矩阵,其值显示在两个单独的矩阵中

Arrays 创建一个新矩阵,其值显示在两个单独的矩阵中,arrays,matlab,sorting,matrix,Arrays,Matlab,Sorting,Matrix,我是Matlab新手,因此这可能是一个非常琐碎的问题,我感谢那些花时间帮助我的人。我有一个618x2矩阵,在第一列中有值,然后是值的索引(本例中为图像上的圆圈)。比如说 46.9810,1 0,2 0,3 0,4 43.1429,5 0,6 0,7 该矩阵称为“Test2” 我有另一个矩阵,是1x58矩阵(称为重叠索引),该矩阵中的值对应于“Test2”矩阵中的索引 例如: 1, 3, 5, 7, 35, 37, 44, 49,.... 我需要一个新的矩阵(我们称之为new)来检查重叠索引中的

我是Matlab新手,因此这可能是一个非常琐碎的问题,我感谢那些花时间帮助我的人。我有一个618x2矩阵,在第一列中有值,然后是值的索引(本例中为图像上的圆圈)。比如说

46.9810,1

0,2

0,3

0,4

43.1429,5

0,6

0,7

该矩阵称为“Test2”

我有另一个矩阵,是1x58矩阵(称为重叠索引),该矩阵中的值对应于“Test2”矩阵中的索引 例如: 1, 3, 5, 7, 35, 37, 44, 49,....

我需要一个新的矩阵(我们称之为new)来检查重叠索引中的值在“Test2”矩阵中是否具有非零相关值。例如,这个新矩阵将包括[43.1429,5],因为索引同时位于“Test2”和“overlappendex”中,并且“Test2”中的对应值为非零

所以本质上这个“新”矩阵看起来像

46.9810,1

43.1429,5

依此类推,直到检查所有索引并生成“新”矩阵

我只需要确保'OverlapseIndex'中的索引对应于'Test2'矩阵中的实际非零值


请帮助并提前感谢您

您的问题可以在Matlab中解决:

NEW = Test2(overlapindex(Test2(overlapindex, 1) ~= 0), :)
解释

Test2(重叠索引,1)
:应检查的行()
Test2(重叠索引,1)~=0
:如果条件为真,则检查每个请求的行
overlapindex(Test2(overlapindex,1)~=0)
:匹配行的索引()


请注意,只有当
overlapindex
仅包含
Test2
的现有索引时,此解决方案才有效,但该解决方案可以轻松扩展以跳过不存在的索引。

因此,您希望第一个矩阵中第一列非零,第二列显示在
Test2
中?