MATLAB: печать индексов вместе с массивом - PullRequest
0 голосов
/ 09 октября 2018

Я новичок в использовании MATLAB, и у меня есть массив размером [131 x 4].Я ищу, чтобы найти строку, которая содержит самое высокое и самое низкое значение в столбце 2. (мой первый столбец используется для обозначения, следующие три используются в качестве координат)

Я хочу иметь возможность извлекать строкикоторые содержат самое высокое и самое низкое значение в столбце 2, например, если бы я знал, что его индекс равен 5, я бы использовал:

LARGESTX = MYARRAY(5,:)

Веб-сайт MATLAB дает инструкции о том, как выбирать определенные элементы массива с помощьюИндексирование, но мой массив настолько велик, что я не могу оценить индекс самых больших / самых маленьких значений.

Есть ли метод, который будет печатать индексы каждой строки рядом с моим массивом?Или создать новый массив с индексами, добавленными к каждой строке?

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать 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, потому что я 'Меня не интересуют эти результаты.Тильда приводит к тому, что первые выходные данные отбрасываются.


Кроме этого, самый простой способ сделать то, что вы на самом деле просили (отобразить массив с номерами строк), это посмотреть на массив в рабочей области.,Это даст вам таблицу с номерами строк и столбцов.

table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...