реклама на сайте
подробности

 
 
> Матлаб + чтение данных из файла, Как перепрыгнуть лишние строчки?
Diusha
сообщение Mar 21 2014, 00:06
Сообщение #1


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Файл примерно такого содержания:

X Y
23 6
41 85
35 95

Нужно прочитать цифири.
Если «X Y» из файла выкинуть,
d=textread('file.txt')
– работает на «ура». Но требуется читать без правки файла.
На
d=textread('file.txt','headerlines',1)
ругается:
??? Error using ==> dataread
Number of outputs must match the number of unskipped input fields.

Что не так?

Сразу попутно еще вопрос. Есть ли возножность перепрыгнуть строчку в середине файла (№ строки известен)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BooZe
сообщение Mar 21 2014, 09:55
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 29-11-10
Из: Минск
Пользователь №: 61 249



Можно попробовать в стиле С:
CODE

%Открываем файл на чтение
inFile = fopen('file.txt','r');
%Считываем первую строку
colNames = fgets(inFile);
%Считываем массив и транспонируем его
dataArray = fscanf(inFile,'%d %d',[2 Inf])';
%Закрываем файл
fclose(inFile);

Будет работать только если названия переменных в первой строке.
Go to the top of the page
 
+Quote Post
Diusha
сообщение Mar 21 2014, 13:06
Сообщение #3


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(Herz @ Mar 21 2014, 12:04) *
А что мешает откорректировать переменную d уже после чтения?

Сообщение об ошибке при попытке чтения с помощью textread файла, где кроме чисел есть что-то еще. Насколько я понимаю, так и должно быть. Для этого и существует опция headerlines.

Цитата(Herz @ Mar 21 2014, 12:04) *
"Перепрыгнуть" через строку в читаемом файле, не зная её номера - это как?

Цитата(Diusha @ Mar 21 2014, 03:06) *
(№ строки известен)


Цитата(BooZe @ Mar 21 2014, 12:55) *
CODE

inFile = fopen('file.txt','r');
colNames = fgets(inFile);
dataArray = fscanf(inFile,'%d %d',[2 Inf])';
fclose(inFile);

1-ю строку кода проглатывает, на 2-ю ругается:
??? Error using ==> fscanf
Invalid file identifier. Use fopen to generate a valid file identifier.


Цитата(syoma @ Mar 21 2014, 15:37) *
Может файл у Вас неправильный? ... не было полных 0x0D, 0x0A в конце строки.

Проверил - "правильный"
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01401 секунд с 7
ELECTRONIX ©2004-2016