Печать двух матриц друг за другом

Рейтинг: 0Ответов: 1Опубликовано: 02.03.2023

Как командой print() вывести две матрицы друг за другом.

Хочу:

[[5 4 4]  [[11]
 [4 5 4]   [8]
 [4 4 5]]  [7]]

Выводится:

[[5 4 4]
 [4 5 4]
 [4 4 5]] [[11]
 [ 8]
 [ 7]]

введите сюда описание изображения

Ответы

▲ 2Принят

Один из вариантов. Преобразуем массивы в строковое представление и выводим построчно.

def side_print(*args):
    lst = list(args)
    max_widths = []
    for i, a in enumerate(lst):
        lst[i] = str(a).split('\n')
        max_widths.append(len(max(lst[i], key=len)))
    max_lines = len(max(lst, key=len))

    for i in range(max_lines):
        for j, t in enumerate(lst):
            if len(t) <= i:
                text = ' ' * max_widths[j]
            else:
                text = t[i]
            print(text, end='\t')
        print()


a = np.array([[5, 4, 4],
              [4, 5, 4],
              [4, 4, 5]])
b = np.arange(100).reshape(10,-1)
c = np.array([[11],
              [8],
              [7],
              [5],
              [3]])

side_print(a, b, c)
[[5 4 4]    [[ 0  1  2  3  4  5  6  7  8  9]    [[11]   
 [4 5 4]     [10 11 12 13 14 15 16 17 18 19]     [ 8]   
 [4 4 5]]    [20 21 22 23 24 25 26 27 28 29]     [ 7]   
             [30 31 32 33 34 35 36 37 38 39]     [ 5]   
             [40 41 42 43 44 45 46 47 48 49]     [ 3]]  
             [50 51 52 53 54 55 56 57 58 59]            
             [60 61 62 63 64 65 66 67 68 69]            
             [70 71 72 73 74 75 76 77 78 79]            
             [80 81 82 83 84 85 86 87 88 89]            
             [90 91 92 93 94 95 96 97 98 99]]