|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
Чтение текстового файла27.11.2015, 15:38. Показов 19858. Ответов 19
Метки нет (Все метки)
Люди добрые, помогите с одной проблемой разобраться! Есть текстовый файл в с набором данных (см. пример). Проблема состоит в том, чтобы получить доступ к последним четырем столбцам. Когда я читаю первые 4 столбца - никаких проблем нет, программа все читает. Но, когда я обращаюсь к 5-му и далее столбцам, тут начинаются чудеса - программа читает только до 5-ой строки!!! Хотел заполнить отсутствующие значения на NaN - но тоже ничего не получается.
fid = fopen('example.txt'); % T = textscan(fid, '%f%s%f%f %*[^\n]'); % для первых 4-х столбцов T = textscan(fid, '%*f%*s%*f%*f%*f%*f%*s%f%f%f%f'); fclose(fid); x = T{1}; y = T{2};
0
|
|
| 27.11.2015, 15:38 | |
|
Ответы с готовыми решениями:
19
Чтение текстового файла Чтение текстового файла Чтение информации из текстового файла |
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 27.11.2015, 16:26 [ТС] | |
|
да, в этом и вся проблема что файл не полный, но по факту надо работать с этим файлом. Пока, я скачиваю этот файл, затем через Excel удаляю эти столбцы и спокойно читаю. Есть одна идея - это читать все столбцы не как %f, а как %s. В этом случае данные с последних столбцов "перераспределяются" на предыдущие и надо как то эти данные отделить. Короче, если кто сталкивался с такой проблемой, просьба откликнутся...
0
|
|
| 27.11.2015, 16:33 | |
|
сталкивался.
варианты: или изменить формат файла (например, писать на пустые места символ какой-нить типа * или -), или читать построчно (оп сути, это не так уж и накладно, если файл не под ГБ)... Через конвертацию в xls тоже конечно можно, но тут вопрос стоимости - не дешевле ли просто читать построчно, будет ли хоть какой-нибудь выигрыш от конвертации?
0
|
|
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 27.11.2015, 17:17 [ТС] | |
|
На самом деле этот пример формата .txt. А в реальности данные доступны онлайн по адресу http://datacenter.iers.org/eop... /latest/12. И смысл состоит в том, чтобы каждые пару месяцев я хочу обновлять мои данные с сайта. А вот на счет построчно читать - я пытался, но ничего не получилось. Может кто-нибудь подскажет?
0
|
|
|
9 / 9 / 3
Регистрация: 25.10.2015
Сообщений: 22
|
||||||
| 28.11.2015, 14:41 | ||||||
|
У вас файл форматирован по позициям символов. То есть 1:8 символы это первая колонка чисел, 9:11 это вторая колонка и тд. Смущает, что последняя строка "оборвана" и не заканчивается 0d0axHH... возможно это просто результат небрежного копирования куска исходного файла в "пример".
Во всяком случае, посмотрите этот код:
87 -- количество "значащих" символов в строках файла перед пробелами. Как видно из кода, я исходил из того, что числа в файле всегда с десятичной точкой. Если колонка целочисленная, то используйте dimC00=repmat([46 48],nC,1); .... Вообще, если по-уму, то dimC лучше сразу переопределить в char: D=char(dimC), потом читать каждую колонку данных с соответствующих знакомест, и через find заменять строку с пробелами на 0, а потом уже использовать str2num. ....да и строк оборванных, по вашей ссылке нет, что упрощает код.
0
|
||||||
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
||||||
| 30.11.2015, 10:20 [ТС] | ||||||
|
Спасибо, конечно, за ответ, но или у нас разные версии Матлаба (у меня 2015а), или я ничего не понял. Мне конкретно нужны столбы 16 (-99.920 ....) и 18 (-13.258 ...), т.е. условно х = 16-й столбец, у = 18-й столбец. Вот если бы ваш код выдавал такой результат, это было бы очень круто, потому что я сам через ж.... что то придумал и вроде работает.
0
|
||||||
|
9 / 9 / 3
Регистрация: 25.10.2015
Сообщений: 22
|
|
| 30.11.2015, 12:15 | |
|
Странно... у меня работало..
Выложите, пожалуйста, пару примеров файлов "как они есть", а не кусок копипастой. И еще, если есть, то описание к колонкам или описание формата... по ссылке я вижу, что сначала идет дата: "15 9 1 57266.00"... причем в своеобразном таком виде... Сделаем вам функцию))
0
|
|
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 30.11.2015, 13:43 [ТС] | |
|
Ссылка http://datacenter.iers.org/eop... /latest/12
Описание формата в прилагаемом файле. Нужны колонки 98-106 (dPSI) и 117-125 (dEPSILON).
0
|
|
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 30.11.2015, 13:43 [ТС] | |
|
Описание формата
0
|
|
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 30.11.2015, 13:47 [ТС] | |
|
или вот еще ссылка с большим количеством данных
http://datacenter.iers.org/eop... v/latest/8
0
|
|
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
||||||
| 01.12.2015, 09:55 | ||||||
Сообщение было отмечено murzik07 как решение
Решение
Если данные находятся в фиксированных колонках, то посмотри пример может поможет
2
|
||||||
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 01.12.2015, 10:34 [ТС] | |
|
спасибо, все работает.
0
|
|
|
31 / 31 / 4
Регистрация: 23.03.2014
Сообщений: 180
|
|||||||||||
| 04.12.2015, 06:12 | |||||||||||
|
murzik07, как вариант- (matlab 2014a)
0
|
|||||||||||
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 04.12.2015, 10:01 [ТС] | |
|
Крутая прога, спасибо. Но, как сделать так чтобы он записывал данные не на 'Desctop' а на флешку 'F:\MATLAB\АстроУОЛ\Data_IERS' (у меня ошибку выдает). И что делать с открывающимся окном командной строки?
0
|
|
|
31 / 31 / 4
Регистрация: 23.03.2014
Сообщений: 180
|
||||||||
| 04.12.2015, 11:48 | ||||||||
1
|
||||||||
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 04.12.2015, 13:12 [ТС] | |
|
О, спасибо. Как я понимаю ты крутой прогер. Тогда вот такой вопрос (если будет время) - вот по этому адресу есть http://webhome.weizmann.ac.il/... ation.html одна программа, которую я очень хочу установить на компьютер но у меня ошибку выдает (см. рисунок). Очень большая просьба помочь
0
|
|
|
31 / 31 / 4
Регистрация: 23.03.2014
Сообщений: 180
|
||
| 04.12.2015, 23:45 | ||
|
Individual functions can be downloaded through the table of functions webpage. - можно загрузить отдельные функции, ссылка - http://webhome.weizmann.ac.il/... ntent.html попробуйте по отдельности установить необходимые компоненты
0
|
||
|
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
|
|
| 06.12.2015, 14:43 [ТС] | |
|
А дело в том, что по отдельным компонентам не хватает одной М-функции. Есть программа tri_match_lsq.m которая после запуска выдает ошибку, что не хватает test_match. А этой функции нет в общем списке. Вот я и думаю, что она как то при полной установке появляется....???
0
|
|
|
31 / 31 / 4
Регистрация: 23.03.2014
Сообщений: 180
|
|
| 07.12.2015, 05:46 | |
|
murzik07, возможно, если у вас windows попробуйте через virtualbox установить linux и запустить install_astro_matlab.m
в install_astro_matlab.m там ряд ошибок, возможно в linux заработает ) windows версии компонентов DS9 - http://ds9.si.edu/site/Download.html xpa - http://ds9.si.edu/site/XPA.html
0
|
|
| 07.12.2015, 05:46 | |
|
Помогаю со студенческими работами здесь
20
Редактирование текстового файла Считывание с текстового файла
Считывание столбцов текстового файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|