Как, имея две матрицы, одну записать в другую? - C#
Формулировка задачи:
Доброго времени. Скажите пожалуйста, как имея 2 двухмерных массивов, один записать в другой?
Пояснение.
Первый массив A[68;120].
Второй массив B[68;60].
Запись произвести всех элементов массива B начиная с 0, в массив А, чтобы элементы массива начинались с 60 столбца, т.е. чтобы получился массив, элементы которого мы заполнили, начинались с первой строки и с 60 столбца.
0 1 2 ... 0 60 0 ... 0 120
0 0 0 ... B[0;0] ... B[0;60]
1 0 0 ... B[1;0] ... B[1;60]
...
68 0 0 ... B[68;0] ... B[68;60]
Белые нули разделители
Решение задачи: «Как, имея две матрицы, одну записать в другую?»
textual
Листинг программы
/*
* Задача: вставить одну матрицу в другую
* в определённой позиции.
*/
using System;
class Program
{
public static void InsertMatrix<T>(T[,] source, T[,] dest, int row, int col) {
// TODO: Проверка границ
for (int r = 0; r < source.GetLength(0); r++) {
for (int c = 0; c < source.GetLength(1); c++) {
dest[r + row, c + col] = source[r, c];
}
}
}
static void Main() {
int[,] m1 = {
{ 1, 2, 3, 4, 5 },
{ 5, 4, 3, 2, 1 },
{ 2, 3, 5, 7, 9 }
};
int[,] m2 = {
{ -10, -20 },
{ -20, -30 }
};
InsertMatrix(m2, m1, 1, 2);
for (int r = 0; r < m1.GetLength(0); r++) {
for (int c = 0; c < m1.GetLength(1); c++) {
Console.Write("{0}\t", m1[r, c]);
}
Console.WriteLine();
}
}
}