У меня есть первая матрица, которая должна учитывать для каждого пользователя (в строках), какие продукты (в столбцах) им нравятся.
Давайте возьмем 3 пользователей и 5 продуктов.
Ни одному пользователю продукт не понравился, поэтому моя матрица ILike равна нулю:
let matrixILike = [[0.; 1.;2.;3.]
[1.;0.;0.;0.]
[2.;0.;0.;0.]
[3.;0.;0.;0.]
[4.;0.;0.;0.]
[5.;0.;0.;0.]]
Теперь пользователю 1 нравится продукт 2, а пользователю 3 нравится продукт 5, который можно обобщить в следующей матрице:
let matrixAction = [[1.;2.]
[3.;5.]]
Итак, я хотел бы реализовать матрицу ILike, благодаря функции matrixAction, чтобы получить новую обновленную матрицу, например:
let matrixILike = [[0.; 1.;2.;3.]
[1.;0.;0.;0.]
[2.;1.;0.;0.]
[3.;0.;0.;0.]
[4.;0.;0.;0.]
[5.;0.;0.;1.]]
Я пытаюсь сделать это с кодом "match with", но он не работает.
for k = 0 to matrixAction.NumRows - 1 do
match (matrixAction.[k,0] , matrixAction.[k,1]) with
| (matrixILike.[x,0] , matrixILike.[0,y]) -> (matrixILike.[x,y] <- 1.)
| _ -> (matrixILike.[x,y] <- 0.)
matrixILike
Если у вас есть предложения, я приму их.