Я новичок в python и получил код python для перевода в Matlab для моей работы. У меня есть конкретная проблема:Перевод python/numpy "A.argmin (axis = -1)" в эквивалентное выражение matlab
У меня есть матрица размером, например (строки/столбцы/3-й тусклый) = (3/4/2).
A = array([[[1, 56, 0, 6],[5, 9, 10, 3],[50, 51, 59, 64]],[[2, 6, 4, 3],[10, 80, 53, 6],[12, 5, 36, 15]]])
Для этой матрицы (и другие) Я дал функцию
B = A.argmin(axis=-1)
, который осуществляет поиск индекса минимума в каждом ряду. (numpy.argmin Manual)
В находится в этом случае:
B = array([[2, 3, 0],[0, 3, 1]])
и размера (строк/столбцов) = (2/3).
Моя АМЫ конвертировать именно это в Matlab-версию, так что я получаю именно эту матрицу, но в Matlab ([Manual Min Matlab] [2])
[~,B] = min(A,[],2)
дает мне матрицу size (row/colums/3rd dim) = (3/1/2). Matlab Output
Индексы минимума в каждой строке одинаковы, если учитывать, что python начинает индексировать в 0 и matlab в 1. Проблема заключается в порядке матрицы.
Как я могу получить размер минимальной суммы каждой строки в точном порядке, так как python делает это в matlab?
Я пробовал много с перестановкой и vertcat, но это не сработало и, в конце концов, оно должно работать для действительно больших матриц.
Я был бы рад, если бы кто-то мог мне помочь. Спасибо заранее!
Добро пожаловать в переполнение стека! Пожалуйста, объясните немного более четко, как результаты отличаются. Кроме того, рассмотрите возможность добавления выходов в качестве кода вместо изображений. –