LINUX.ORG.RU

Чтение матрицы из файла.

 , ,


1

3

Здравствуйте! Мне нужно прочитать матрицу из файла input.txt на языке python3. Матрица состоит из char'ов и вот ее пример:


A A . B B
. A . . B
A A . . B
A . . . B
A A . B B
на вход еще подаются два числа n*m (размерность матрицы)
Пробовал гуглить . Ничего не нашел. Кто знает как реализовать чтение матрицы пожалуйста помогите.

подписался, тоже интересно.. сталкнулся с такой же проблемой когда вдруг оказалось нужно прочитать матрицу из файла и ни как...

anonymous
()
Ответ на: комментарий от anonymous

ты больной ублюдок если не знаешь не пиши

levon12341
() автор топика
Ответ на: комментарий от greenman

Спасибо, для моих задач подходит. Кинул 30$ на кошелёк, как договаривались.

anonymous
()
Ответ на: комментарий от greenman

Смотри в личке решение.

да, спасибо! решение работает! матрицы прямо НА_УРА теперь читаются!

только исправил xrange на range — в тройке его нет

anonymous
()

Читай по строкам, пользуйся .split() для разделения по пробелам.

evilface ★★
()

Для начала считай файл в массив текстовых строк.

Затем по формуле s = (2*m)-1 ты получишь позицию символа в строке.

Но лучше сделай следующим образом. Могу показать пример на gambas, но думаю для питона ты сможешь его адаптировать

Dim FileStrings As String[] ' Динамический массив строк
Dim MATRIX As New Byte[][] ' Массив массивов. Двумерный массив для результата
Dim a As Integer ' счётчик
Dim b As Intrger
Dim e As Intrger
Dim m As Integer ' предел счётчика
Dim sm As Integer ' предельная строка
Dim t As String * 1

FileStrings = LoadDataTextFile() ' Загрузка строк из файла в массив

MATRIX.Resize(FilesStrings.Count) ' Размер матрицы по количеству строк
sm = MATRIX.Max

For a=0 To sm
 Matrix[a] = New Byte[]
 m = Len(FileStrings[a])
 Matrix[a].Resize(m/2)
 b = 1
 For e=0 To Matrix[a].Max
  MATRIX[a][e] = Asc(Mid(FileStrings[a],b,1))
  b=b+2
 Next
Next

rezedent12 ☆☆☆
()
Ответ на: комментарий от rezedent12

Чего его все троллить-то принялись? Ну начинает школьник в олимпиадное программирование погружаться. Октябрь ещё, может, только язык учить месяц как начали.

evilface ★★
()
Ответ на: комментарий от GoNaX

По-моему там вообще можно типа что-то типа

with open("matrix.txt") as f:[x.split(" ") for x in f.readlines()]

А не, ещё размерность учитывать, тогда в 1 строку наверно не выйдет.

anonymous
()
Ответ на: комментарий от user_id_68054

Что тут вообще обсуждать, по-твоему? Если ТС не учился и не может решить элементарную задачу теперь, значит, мы должны сделать это за него? Всё необходимое уже рассказали и так.

anonymous
()
Ответ на: комментарий от anonymous

Устойчивое выражение разве может быть тавтологией?

В данном случае да. Ибо оно уже выражает предлог «В» (In). И тавтология выдаёт несознательное использование аббревиатуры.

rezedent12 ☆☆☆
()
import numpy as np
matrix = np.loadtxt('file.txt', 'c')
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.