#f# #matrix
#f# #матрица
Вопрос:
У меня есть следующие критерии для профиля пользователя :
Критерий 1 :
1 = Человек
2 = Женщина
3 = Неизвестно
Критерий 2 :
1 = Да
2 = Нет
Критерий 3 :
1 = Да
2 = Нет
3 = Неизвестно
У меня есть следующая матрица из SQL: Матрица «User1» [[3.;1.;2.]] ( Пол неизвестен / Да / Нет)
Я хотел бы найти код для получения следующей повторной обработки, и это может сработать, если будет добавлен новый критерий (еще один столбец для матрицы «User1» из SQL) :
Результат : [[0.;0.;1.;1.;0.;0.;1.;0.]]
что такое [[Мужчина; Женщина; Неизвестно; Да для Критерия2;Нет для критерия2;Да для Критерия3;Нет для Критерия3;Неизвестно для Критерия3]]
Комментарии:
1. Глядя на ваш последний пример, из-за того, как упорядочены элементы, я не вижу способа сделать это без указания количества строк. Возможно ли это?
Ответ №1:
Вам это нравится?
//> conv [[3.;1.;2.]] ;;
//val it : float list list = [[0.0; 0.0; 1.0; 1.0; 0.0; 0.0; 1.0; 0.0]]
let conv data =
let [[a:float;b;c]] = data
let C1 = Array.create 3 0.
let C2 = Array.create 2 0.
let C3 = Array.create 3 0.
C1.[int a - 1] <- 1.0
C2.[int b - 1] <- 1.0
C3.[int c - 1] <- 1.0
[ Array.concat [| C1; C2; C3 |] |> Array.toList]