MATLAB:在数组旁边打印索引
Posted
技术标签:
【中文标题】MATLAB:在数组旁边打印索引【英文标题】:MATLAB: Print the indexes alongside an array 【发布时间】:2018-10-09 10:35:04 【问题描述】:我是使用 MATLAB 的新手,我有一个大小为 [131 x 4] 的数组。我正在寻找在第 2 列中包含最高和最低值的行。(我的第一列用于标记,接下来的三列用作坐标)
我希望能够提取第 2 列中包含最高和最低值的行,例如,如果我知道它的索引是 5,我会使用:
LARGESTX = MYARRAY(5,:)
MATLAB 网站提供了有关如何使用索引来选择数组的特定元素的说明,但是由于我的数组太大,我无法看到最大/最小值的索引。
有没有一种方法可以在我的数组旁边打印每一行的索引?或者创建一个新数组,每行都附加索引?
【问题讨论】:
问题的措辞不同,因为您已经按照自己的方式(通过显示)解决问题,但问题的根源是 Index of max and min value in an array 的重复。 【参考方案1】:您可以使用min
和max
的第二个输出来简单地获取索引,无需“关注”正确的行来显示整个矩阵!
[~,minIdx] = min( myarray(:,2) ); % minIdx is the row in column 2 with the min value
[~,maxIdx] = max( myarray(:,2) ); % maxIdx is the row in column 2 with the max value
然后你可以按照你的建议索引
smallestRow = myarray( minIdx, : );
largestRow = myarray( maxIdx, : );
请注意,我使用波浪号 (~
) 代替了 min
和 max
的第一个输出的变量,因为我对这些输出不感兴趣。波浪号会导致第一个输出被丢弃。
除此之外,执行您实际要求的操作(显示带有行号的数组)的最简单方法是查看工作区中的数组。这将为您提供一个包含行号和列号的表格。
【讨论】:
以上是关于MATLAB:在数组旁边打印索引的主要内容,如果未能解决你的问题,请参考以下文章