多维数组中的元素相乘

Multiply element in multidimensional array

->请帮忙实现一个功能

基本上我想操作一个图像

想象一下,图像可以按像素分解 -> 图像的每个像素(举个简单的例子)都是“一个数字”

        int[,] originalImage = new int[,]
        {
            { 1,2,3 },
            { 4,5,6 }
        };

而且我需要将图像的大小加倍 x2(或 x3、x4 等) 当尺寸加倍时,像素“1”将被复制到右侧、下方和角落

            int[,] expectedResult = new int[,]
        {
            { 1,1,2,2,3,3 },
            { 1,1,2,2,3,3 },
            { 4,4,5,5,6,6 },
            { 4,4,5,5,6,6 }
        };

该功能如何实现?

Multiply(int[,] originalImage, int multiply)

请注意,有大量的库可以在数学或图像处理中执行此操作。不过,纯属学术用途

给定

private static int[,] DoStuff(int[,] array,int size)
{
   var sizeX = array.GetLength(0);
   var sizeY = array.GetLength(1);

   var newArray = new int[sizeX * size, sizeY * size];

   for (var i = 0; i < newArray.GetLength(0); i++)
   for (var j = 0; j < newArray.GetLength(1); j++)
      newArray[i, j] = array[i / size, j / size];

   return newArray;
}

用法

int[,] originalImage = 
{
   { 1, 2, 3 },
   { 4, 5, 6 }
};

var newArray = DoStuff(originalImage,3);

for (var i = 0; i < newArray.GetLength(0); i++)
{
   for (var j = 0; j < newArray.GetLength(1); j++)
      Console.Write(newArray[i, j] + " ");
   Console.WriteLine();
}

输出

1 1 1 2 2 2 3 3 3
1 1 1 2 2 2 3 3 3
1 1 1 2 2 2 3 3 3
4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6