using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using ArrayFire; namespace Transpose { class Program { static void Main(string[] args) { ArrayFire.Array ArrayIn = Data.CreateArray(IndexMatrix(5, 7)); Console.WriteLine("In:"); Console.WriteLine(ArrayToString(Data.GetData2D(ArrayIn))); ArrayFire.Array ArrayOut = Matrix.Transpose(ArrayIn, false); Console.WriteLine(""); Console.WriteLine("Out:"); Console.WriteLine(ArrayToString(Data.GetData2D(ArrayOut))); Thread.Sleep(100000); } public static int[,] IndexMatrix(int dim0Size, int dim1Size) { int[,] out1 = new int[dim0Size, dim1Size]; int k = 0; for (int i = 0; i < dim0Size; i++) { for (int j = 0; j < dim1Size; j++) { out1[i, j] = k; k++; } } return out1; } public static string ArrayToString(T[,] array) { if (array.GetLength(0) == 0) { return ""; } StringBuilder SB1 = new StringBuilder(); for (int i = 0; i < (array.GetLength(0) - 1); i++) { for (int j = 0; j < (array.GetLength(1) - 1); j++) { SB1.Append(array[i, j]); SB1.Append(","); } SB1.Append(array[i, array.GetLength(1) - 1]); SB1.AppendLine(""); } for (int j = 0; j < (array.GetLength(1) - 1); j++) { SB1.Append(array[array.GetLength(0) - 1, j]); SB1.Append(","); } SB1.Append(array[array.GetLength(0) - 1, array.GetLength(1) - 1]); return SB1.ToString(); } } }