Matlab. индексирование 1 файла с колонками и строками разной длины - PullRequest
0 голосов
/ 31 октября 2018

Мне дали несколько очень больших файлов, которые мне нужно обработать. Я работал над несколько симларом, но они не похожи ни на что из того, что у меня было. Похоже, кто-то скопировал и вставил кучу файлов Excel различной длины вместе и преобразовал в текстовый файл.

Мне нужно отделить их. Еще более забавная часть помимо столбцов 2-6, мне нужны последние 3 столбца каждого набора. Кто бы и что бы ни создавал эти файлы, он добавляет и вычитает столбцы в середине, что меняет расположение последних 3 столбцов. Я бы сделал это вручную, но это МНОГО данных и формат, который я получу больше.

Мне нужно разобрать все данные по номеру дорожки и сохранить в отдельные файлы. Matlab выдает ошибки почти во всем, что я делаю. Я думаю, что могу решить проблему с столбцами с помощью оператора if, спрашивающего о количестве столбцов, но я до сих пор не получил, потому что я пока не могу понять, как разделить данные. тьфу.

Не совсем уверен, как сделать симпатичный стол, но на самом деле это выглядит так ...

Примечание:

  • Строки разной длины.
  • Разное количество столбцов
  • и дополнительные столбцы генерируются перед последними 3 столбцами (которые мне нужны последние 3)
  • смешивание цифр и букв (вроде).
  • О да ... заголовков для колонок тоже нет

Трек 252556
Аванс -163,71 15.04.18 13:33:22 37.1112 -76.27 -27.03 -2.14 -5.12 -163.71
Аванс -163.71 15.04.18 13:33:22 37.1350 -76.27 -27.02 -2.56 -8.11 -163.71
Аванс -163,71 15.04.18 13:33:22 37,1588 -76,26 -27,01 -2,98 -11,10 -163,71
Аванс -163,73 15.04.18 13:33:22 37,1826 -76,26 -27,01 -3,40 -14,09 -163,73
Трек 266565
Аванс -163,76 15.04.18 13:33:24 37,3730 -76,24 -26,92 14,70 -6,77 -38,02 -163,76
Аванс -163,75 15.04.18 13:33:24 37,3968 -76,23 -26,92 16,10 -7,19 -41,01 -163,75
Аванс -163,77 15.04.18 13:33:24 37,4206 -76,23 -26,91 17,50 -7,61 -44,00 -163,77
Аванс -163,77 15.04.18 13:33:24 37,4444 -76,23 -26,90 18,90 -8,03 -46,99 -163,77
Трек 65229
Аванс -163,79 15.04.18 13:33:25 37,4682 -76,22 -26,89 20,30 D -8,45 -49,98 -163,79
Аванс -163,79 15.04.18 13:33:25 37,4920 -76,22 -26,89 21,70 D -8,87 -52,98 -163,79
Аванс -163,81 15.04.18 13:33:25 37,5158 -76,22 -26,87 23,10 D -9,29 -55,97 -163,81
Аванс -163,81 15.04.18 13:33:25 37,5396 -76,21 -26,87 24,50 D -9,71 -58,96 -163,81
Трек 65229
Аванс -163,83 15.04.18 13:33:25 37,5634 -76,21 -26,86 -10,13 -61,95 -163,83
Аванс -163,85 от 15.04.18 13:33:26 37,5872 -76,21 -26,84 -10,56 -64,94 -163,85
Аванс -163,88 15.04.18 13:33:26 37,6110 -76,21 -26,83 -10,98 -67,93 -163,88
Аванс -163,89 15.04.18 13:33:26 37,6348 -76,20 -26,81 -11,40 -70,92 -163,89
Аванс -163,91 15.04.18 13:33:26 37,6586 -76,20 -26,80 -11,82 -73,91 -163,91
Аванс -163,92 15.04.18 13:33:26 37,6824 -76,27 -26,77 -12,24 -76,90 -163,92

1 Ответ

0 голосов
/ 31 октября 2018

Вам нужно будет построчно прочитать файл, а затем обработать каждую строку, чтобы получить необходимую информацию: suedo code:

fid = fopen ( filename, 'r' );
if fid ~= -1
  while ~feof(fid)
    line = fgetl ( fid );

    % split the line using textscan or strread - use the column delimiter and store the appropriate columns
    info = textscan ( line, '%s' )
    last3 = info{1}(end-2:end);
    % store somewhere....
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...