Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.02.2023
Сообщений: 4

Транспонирование матриц

20.02.2023, 11:57. Показов 867. Ответов 7

Студворк — интернет-сервис помощи студентам
Вам дан файл с матрицей, нужно транспонировать матрицу, размер не указан вот что у меня получилось, но мне надо ещё что бы всё было так сказать красиво и матрица транспонировалась в форматированную например каждое число в столбце выравнивалось по правому краю наибольшего числа

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
with open("file_name.txt", "r", encoding='utf8') as file:
    lines = file.readlines()
mat1 = []
for i in range(len(lines)):
    row = lines[i].split()
    new_row = []
    for j in row:
        new_row.append(int(j))
    mat1.append(new_row)
mat2=[[] for i in range (len(mat1[0]))]
for i in range (len(mat1)):
    for j in range(len(mat1[i])):
        mat2[j].append(mat1[i][j])
with open('123.txt', 'w') as f:
    for row in mat2:
        f.write(' '.join([str(i) for i in row]) + '\n')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2023, 11:57
Ответы с готовыми решениями:

Транспонирование матриц
Здравствуйте, мне сделали вот такую программу по транспонированию матриц, однако преподаватель сказал сделать, что-бы пользователь мог сам...

Транспонирование на 45°
Ввели N строк по N целых чисел (для удобства представлены тут цифрами). Полученную матрицу 1234 5678 9012 3456 попытались...

Транспонирование
Ввод стандартный ввод или med_research.txt Вывод output.txt Биолог провёл исследование устойчивости нескольких видов бактерий...

7
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
20.02.2023, 12:51
Цитата Сообщение от Lehabob Посмотреть сообщение
каждое число в столбце выравнивалось по правому краю наибольшего числа
Есть встроенный способ выделять конкретное число символов под вывод. Например, красивый вывод таблицы умножения будет таким:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> for i in range(1, 10):
...     for j in range(1, 10):
...             print(f"{i * j:5d}", end='')
...     print()
...
    1    2    3    4    5    6    7    8    9
    2    4    6    8   10   12   14   16   18
    3    6    9   12   15   18   21   24   27
    4    8   12   16   20   24   28   32   36
    5   10   15   20   25   30   35   40   45
    6   12   18   24   30   36   42   48   54
    7   14   21   28   35   42   49   56   63
    8   16   24   32   40   48   56   64   72
    9   18   27   36   45   54   63   72   81
То есть форматируя текст можно указать через двоеточие нужное число, и будет заполняться пробелами всё остальное. Так с любым двумерным списком / матрицей можно работать
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
20.02.2023, 13:06
Lehabob, файл с матрицей приложите сюда.Lehabob,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from random import randint
 
 
def gen_matrix(n, m, min_, max_):
    matrix = [[randint(min_, max_) for _ in range(m)] for _ in range(n)]
    with open('in.txt', 'w') as file:
        file.writelines(' '.join(map(str, line)) + '\n' for line in matrix)
 
 
def read_matrix():
    with open('in.txt') as file:
        return [line.split() for line in file.readlines()]
 
 
def trans_matrix(matrix):
    return [*zip(*matrix)]
 
 
def write_matrix(matrix):
    width = max(len(max(line, key=len)) for line in matrix)
    with open('out.txt', 'w') as file:
        file.writelines(' '.join(map(lambda x: x.rjust(width), line)) + '\n' for line in matrix)
 
 
if __name__ == '__main__':
    gen_matrix(n=3, m=4, min_=90, max_=110)
    matrix = read_matrix()
    matrix = trans_matrix(matrix)
    write_matrix(matrix)
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
20.02.2023, 13:59
Без ввода-вывода в файл:
Python
1
2
3
4
5
6
7
8
9
10
from random import randint
def out(m):
    for r in m:
        for i in r:
            print(i, end='\t')
        print()
mat1 = [[randint(0, 10) for _ in range(10)] for _ in range(9)]
out(mat1)
mat2 = zip(*mat1)
out(mat2)
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
20.02.2023, 14:20
Parramon, по правому краю…
1
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
20.02.2023, 14:26
Gdez, не заметил... Тогда как rim41, написал
Python
1
2
3
4
5
6
7
8
9
10
from random import randint
def out(m):
    for r in m:
        for i in r:
            print(f"{i:5d}", end='')
        print()
mat1 = [[randint(0, 10) for _ in range(10)] for _ in range(9)]
out(mat1)
mat2 = zip(*mat1)
out(mat2)
1
0 / 0 / 0
Регистрация: 20.02.2023
Сообщений: 4
21.02.2023, 18:27  [ТС]
Не совсем понимаю как будет работать эта часть, зачем вы вводите рандом ну ладно, и получается не матрица как минимум а просто таблица с полу пустым последним столбом, или я что-то сделал не так, так же по-моему ф-строки не робят внутри массива из-за этого лично у меня всё шло не по плану, я опять повторюсь я не понимаю что вы сделали я новенький в питоне и увалень тот ещё объясните пожалуйста
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
21.02.2023, 21:12
Lehabob, Мы делаем рандом потому, что ты не приложил файл. Мне, например, лень его создавать.
f-строки работают всегда, когда ты формируешь строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2023, 21:12
Помогаю со студенческими работами здесь

Транспонирование матрицы
В файле matrix.txt содержится матрица M x N. Напишите программу transpose.py, которая транспонирует матрицу и сохраняет результат в файл...

транспонирование матрицы
Всем привет! помогите, найти ошибку при транспонировании матрицы, пожалуйста! from random import randint x = int(input("rows:...

Транспонирование матрицы
Составить программу обработки двумерного массива А 3:3, осуществите транспонирование матрицы А.

Интервалы и транспонирование
Добавим в класс Note сравнение нот. Сравнивать будем по высоте, без учёта длительности, причём будем считать большей ту ноту, чей тон выше...

Транспонирование матрицы
Напишите функцию transpose(matrix), которая принимает матрицу N × M (т.е. список из N списков-строк по M элементов каждый) и транспонирует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru