Я не думаю, что ключевое слово match
полезно в этом случае.Это полезно, только если вам нужно делать разные вещи в зависимости от значения какого-либо выражения.Вы можете легко решить проблему, написав:
b.[0 .. b.NumCols, 1 .. 1] <- a.[0 .. b.NumCols, 1 .. 1]
Это выполняет массовую операцию - она берет срез , который представляет весь второй столбец a
и назначает его срезукоторый представляет весь второй столбец b
.
Если вы хотите написать это с помощью цикла for
, вы можете использовать:
for i in 0 .. b.NumCols - 1 do
b.[i, 1] <- a.[i, 1]
Для получения дополнительной информации об использовании matrix
типа, вы можете прочитать мой недавний пост в блоге .Он использует matrix
для представления графиков, но объясняет все основные синтаксис и операции, которые вы можете выполнять с матрицами.
EDIT Чтобы ответить на дополнительный вопрос - если вы хотите проверить, является лисовпавшее значение совпадает с некоторым другим значением (например, элементом в другой матрице), тогда вам нужно использовать предложение when
:
match a.[0,0] with
| v when v = b.[0,0] -> () // Do nothing, they are the same
| v -> a.[0,0] <- v // Set a.[0,0] to b.[0,0] because they are different