Я делаю несколько PCA ядра и хочу разрешить матрицу. Я сделал все на Python и теперь хочу преобразовать свой код в matlab для сравнения.Смещение матрицы ядра/подобия в matlab
Я немного боюсь в точке, где я хочу разрезать матрицу ядра. В Python это довольно просто для меня. Вот пример для простой матрицы, чтобы показать вам, что я имею в виду:
import numpy as np
print('Sparsify a matrix by zeroing all elements but the top 2 values in a row.\n')
A = np.array([[1,2,3,4,5],[9,8,6,4,5],[3,1,7,8,9]])
print('Before:\n%s\n' %A)
for row in A:
sort_idx = np.argsort(row)[::-1] # get indexes of sort order (high to low)
for i in sort_idx[2:]:
row[i]=0
print('After:\n%s\n' %A)
Sparsify a matrix by zeroing all elements but the top 2 values in a row.
Before:
[[1 2 3 4 5]
[9 8 6 4 5]
[3 1 7 8 9]]
After:
[[0 0 0 4 5]
[9 8 0 0 0]
[0 0 0 8 9]]
Итак, как бы я это сделать в MATLAB?
Было бы здорово, если бы вы могли помочь мне здесь. Существует ли эквивалент argsort
, то есть получение, например, 3 самых низких значений в строке, чтобы я мог установить их в 0?
Большое спасибо. Заметка о «... первом совпадении максимального и второго максимума ...» - это важно знать, но для моего приложения это не имеет особого значения, так как у меня есть «реальные» значения (float) – Sebastian
@SebastianRaschka Я вижу , удивительно! – Divakar
+1 Так я тоже это сделаю –