# Транспонирование произвольной матрицы - 14
# - ДВЕ ЗАГОТОВКИ - ОДНА ЗАДАЁТСЯ ВРУЧНУЮ, ДРУГАЯ СОЗДАЁТСЯ средствами Python.
# A - заданная матрица, которую нужно транспонировать.
A = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
# m - количество строк в матрице A (в данном случае m = 3 строки),
# n - количество столбцов в матрице A (в данном случае n = 4 столбца),
# A - матрица размера m*n (в данном случае: 3*4).
m = len(A)
n = len(A[0])
# A_T1 и A_T2 - матрицы-заготовки для построения транспонированной матрицы А, состоящие изначально из нулей.
# Впоследствии A_T1 и A_T2 будут заполняться соответствующими элементами матрицы А.
# НЕ ПОНИМАЮ, ПОЧЕМУ A_T1 и A_T2 ОБРАБАТЫВАЮТСЯ ОДНИМ И ТЕМ ЖЕ ЦИКЛОМ ПО-РАЗНОМУ!!!!!!!
# У матриц A_T1 и A_T2 наоборот:
# n - количество строк в матрицах (в данном случае n = 4 строки),
# m - количество столбцов в матрицах (в данном случае m = 3 столбца).
# A_T1 и A_T2 матрицы размера n*m (в данном случае: 4*3).
# A_T1 - Заготовка из нулей "ручной работы":
A_T1 = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
# A_T2 - Заготовка из нулей, созданная средствами Python:
A_T2 = [[0]*m]*n
# Проверим, совпадают ли построенные матрицы A_T1 и A_T2:
if A_T1 == A_T2:
print('A_T1 == A_T2')
else:
print('A_T1 != A_T2')
print()
print(A)
print()
print(A_T1)
print()
print(A_T2)
print()
for i in range: # i = 0, 1, 2, 3.
for j in range(m): # j = 0, 1, 2.
print()
print('i = ', i, ', ', 'j = ', j, sep = '')
A_T1[j] = A[j]
A_T2[j] = A[j]
print('A_T1 =', A_T1)
print('A_T2 =', A_T2)
if A_T1 == A_T2:
print('A_T1 == A_T2')
else:
print('A_T1 != A_T2')
print()
print(A_T1)
print()
print(A_T2)
print()
# - ДВЕ ЗАГОТОВКИ - ОДНА ЗАДАЁТСЯ ВРУЧНУЮ, ДРУГАЯ СОЗДАЁТСЯ средствами Python.
# A - заданная матрица, которую нужно транспонировать.
A = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
# m - количество строк в матрице A (в данном случае m = 3 строки),
# n - количество столбцов в матрице A (в данном случае n = 4 столбца),
# A - матрица размера m*n (в данном случае: 3*4).
m = len(A)
n = len(A[0])
# A_T1 и A_T2 - матрицы-заготовки для построения транспонированной матрицы А, состоящие изначально из нулей.
# Впоследствии A_T1 и A_T2 будут заполняться соответствующими элементами матрицы А.
# НЕ ПОНИМАЮ, ПОЧЕМУ A_T1 и A_T2 ОБРАБАТЫВАЮТСЯ ОДНИМ И ТЕМ ЖЕ ЦИКЛОМ ПО-РАЗНОМУ!!!!!!!
# У матриц A_T1 и A_T2 наоборот:
# n - количество строк в матрицах (в данном случае n = 4 строки),
# m - количество столбцов в матрицах (в данном случае m = 3 столбца).
# A_T1 и A_T2 матрицы размера n*m (в данном случае: 4*3).
# A_T1 - Заготовка из нулей "ручной работы":
A_T1 = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
# A_T2 - Заготовка из нулей, созданная средствами Python:
A_T2 = [[0]*m]*n
# Проверим, совпадают ли построенные матрицы A_T1 и A_T2:
if A_T1 == A_T2:
print('A_T1 == A_T2')
else:
print('A_T1 != A_T2')
print()
print(A)
print()
print(A_T1)
print()
print(A_T2)
print()
for i in range: # i = 0, 1, 2, 3.
for j in range(m): # j = 0, 1, 2.
print()
print('i = ', i, ', ', 'j = ', j, sep = '')
A_T1[j] = A[j]
A_T2[j] = A[j]
print('A_T1 =', A_T1)
print('A_T2 =', A_T2)
if A_T1 == A_T2:
print('A_T1 == A_T2')
else:
print('A_T1 != A_T2')
print()
print(A_T1)
print()
print(A_T2)
print()