我是使用MATLAB的新手,并且我有一个大小为[131 x 4]的数组。我正在寻找在第2列中包含最高和最低值的行。(我的第一列用于标签,后三列用作坐标)
我希望能够提取第2列中包含最高和最低值的行,例如,如果我知道其索引为5,则可以使用:
LARGESTX = MYARRAY(5,:)
MATLAB网站提供了有关如何通过使用索引来选择数组中特定元素的说明,但是由于数组太大,我无法看清最大/最小值的索引。
有没有一种方法可以在我的数组旁边打印每一行的索引?还是要创建一个新的数组,并将索引附加到每行上?
答案 0 :(得分:2)
您可以使用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
)代替了变量,因为我对这些输出不感兴趣。波浪号会导致第一个输出被丢弃。
除此之外,执行您实际要求的最简单方法(显示具有行号的数组)是查看工作空间中的数组。这将为您提供一个包含行号和列号的表。