Тензорный эквивалент F # функции Matlab ndgrid - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь реализовать функцию f #, которая реплицирует функцию matlab ndgrid с использованием библиотеки f # Tensor из DeepML.Net.Я новичок в F # и в стиле функционального программирования в целом и, похоже, не могу найти решения для этого другого, чем грубая сила вложенного цикла.

Код matlab, который я пытаюсь эмулировать, выглядит примерно так, как показано ниже, но я хотел бы поддерживать произвольные измерения длины и количество измерений.

a = [0 1];
b = [2 3];
c = [4 5];
d = [6 7];
[A, B, C, D] = ndgrid(a,b,c,d)

Какие выходные данные:

ans(:,:,1,1) =

   0   0
   1   1

ans(:,:,2,1) =

   0   0
   1   1

ans(:,:,1,2) =

   0   0
   1   1

ans(:,:,2,2) =

   0   0
   1   1

B =

ans(:,:,1,1) =

   2   3
   2   3

ans(:,:,2,1) =

   2   3
   2   3

ans(:,:,1,2) =

   2   3
   2   3

ans(:,:,2,2) =

   2   3
   2   3

C =

ans(:,:,1,1) =

   4   4
   4   4

ans(:,:,2,1) =

   5   5
   5   5

ans(:,:,1,2) =

   4   4
   4   4

ans(:,:,2,2) =

   5   5
   5   5

D =

ans(:,:,1,1) =

   6   6
   6   6

ans(:,:,2,1) =

   6   6
   6   6

ans(:,:,1,2) =

   7   7
   7   7

ans(:,:,2,2) =

   7   7
   7   7

Matlab ndgrid документы: https://www.mathworks.com/help/matlab/ref/ndgrid.html

Тензор F #: http://www.deepml.net/Tensor/

...