MATLAB:在数组旁边打印索引

时间:2018-10-09 10:35:05

标签: arrays matlab

我是使用MATLAB的新手,并且我有一个大小为[131 x 4]的数组。我正在寻找在第2列中包含最高和最低值的行。(我的第一列用于标签,后三列用作坐标)

我希望能够提取第2列中包含最高和最低值的行,例如,如果我知道其索引为5,则可以使用:

LARGESTX = MYARRAY(5,:)

MATLAB网站提供了有关如何通过使用索引来选择数组中特定元素的说明,但是由于数组太大,我无法看清最大/最小值的索引。

有没有一种方法可以在我的数组旁边打印每一行的索引?还是要创建一个新的数组,并将索引附加到每行上?

1 个答案:

答案 0 :(得分:2)

您可以使用minmax的第二个输出来简单地获取索引,而无需通过显示整个矩阵来“盯眼”正确的行!

[~,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)代替了变量,因为我对这些输出不感兴趣。波浪号会导致第一个输出被丢弃。


除此之外,执行您实际要求的最简单方法(显示具有行号的数组)是查看工作空间中的数组。这将为您提供一个包含行号和列号的表。

table