Я подозреваю, что это не может считаться отличным вопросом, но я полностью ударил его по стене и мог использовать некоторую помощь.Перевод цифрового кода на C#
Я пытаюсь реализовать этот код:
http://www.nathanieltroutman.net/content/calculating-minimum-volume-bounding-box
в C#, с оригинальным существом в Python.
Это должно было хорошо, пока я не попал этот раздел:
def calcProjections(points, *vectors):
"""Calculates the projection of points (NxD) onto the vectors
(MxD) and return the projections p which is a matrix sized (N, M)
where N is the number of points and M is the number of vectors.
p[i][j], is the projection of points[i] onto vectors[j] (which is
between 0 and 1)."""
u = np.array(vectors)
# project the points onto the vectors into on fell swoop
d = np.dot(points, u.T)
# this is the dot product of each vector with itself
v2 = np.diag(np.inner(u, u))
p = d/v2
return p
И я просто изо всех сил, чтобы расшифровать то, что на самом деле происходит. Я не уверен, что означает автор, проецируя на определенные векторы или формат вывода (черт побери, утка). Для меня это тоже слишком расплывчато.
Есть ли у кого-нибудь какие-либо предложения или объяснения относительно того, что это делает? Любая помощь очень ценится.
Спасибо.
Прочитайте документацию. [numpy.dot] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html), [numpy.diag] (http://docs.scipy.org/doc/numpy /reference/generated/numpy.diag.html), [numpy.inner] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.inner.html). – CoryKramer
_ "... Ненавижу этот раздел" _ Фрейдистский промах? :) –
Ха-ха, возможно. Что касается документации. Это немного меня портит, чтобы быть честным, в частности, что он делает, когда речь идет о двух массивах, которые пунктирны (dot producted?) Вместе, но даже несмотря на это общая цель того, что делает эта часть кода, немного непонятно мне. – djcmm476