У меня есть массив [2; 3]
и матрица [ 1 3 4 5; 2 4 9 2]
. Теперь я хотел бы извлечь второй элемент из первой строки и третьего элемента из второй строки и, таким образом, получить [3 ; 9]
. Мне удалось сделать это с помощью цикла, но поскольку я работаю с гораздо большими массивами, я бы хотел их избежать.Извлечь значения из массива 2d с индексами из другого массива (без циклов)
1
A
ответ
4
Вы можете использовать sub2ind
для преобразования каждого из индексов столбцов (наряду с их рядами индексов) в linear index, а затем использовать что индексировать в вашу матрицу.
A = [1 3 4 5; 2 4 9 2];
cols = [2; 3];
% Compute the linear index using sub2ind
inds = sub2ind(size(A), (1:numel(cols)).', cols);
B = A(inds)
% 3
% 9
В качестве альтернативы, можно вычислить линейные индексы сами, который будет более производительным, чем sub2ind
B = A((cols - 1) * size(A, 1) + (1:numel(cols)).');
% 3
% 9
2
Эксплуатируя функцию diag
, вы можете получить элегантное решение одной строки:
A = [1 3 4 5; 2 4 9 2];
cols = [2; 3];
B = diag(A(:,cols))
% 3
% 9
Вот что diag(A(:,cols))
делает:
A(:,cols)
выбирает столбцыcols
изA
с колоннойk
A(:,cols)
из соответствующего столбцаcols(k)
изA
, давая[3 4; 4 9]
;diag
возвращает диагональные элементы этой матрицы, тем самым возвращаясь в положенииk
k
-го диагонального элементаA(:,cols)
, которыйA(k,cols(k))
.
Смежные вопросы
- 1. Как извлечь область 2d из другого 2d-массива
- 2. значения экстракта массива из другого массива
- 3. Поиск элементов на матрице с индексами из другого массива - python
- 4. Как извлечь собранные данные из 2D-массива?
- 5. Вычислить среднее из массива с определенным значением из другого массива
- 6. Извлечь значения из массива JSON
- 7. Drupal7 Извлечь значения из массива
- 8. индексировать индексы массива из значения другого массива?
- 9. Извлечь значения из массива хэшей
- 10. Извлечь значения из массива Javascript
- 11. Использование значения из массива для получения значения из другого массива
- 12. инициализировать размер массива из другого значения массива
- 13. Как извлечь подматрицу из массива numpy 2d?
- 14. Извлечь фрагмент данных из массива 2D
- 15. Найти границы массива 2d с индексами
- 16. Python: извлечь сердцевину из Numpy массива 2D
- 17. Значения циклов из массива в сетку JS
- 18. Создание 2D-массива из каждого 5-го элемента другого массива
- 19. Извлечь последовательности из массива
- 20. Извлечь NSNumber из массива
- 21. значение подстановок из массива, используя значения из другого массива
- 22. Расчет среднего значения из импортированного 2D-массива
- 23. Как удалить нулевые значения из 2D-массива?
- 24. значения Совпадение из массива со значениями из другого массива
- 25. Извлечь данные из массива
- 26. Создание 2d массив, состоящий из acumulation другого 2d массива
- 27. Извлечь конкретные значения из многомерного массива javascript
- 28. Показать сумму из массива с 5 индексами
- 29. Случайный выбор из 2D-массива без повторения
- 30. cudamalloc из 2D-массива