Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
1

Быстрое считывание ИЗ excel файла

19.01.2015, 16:59. Показов 3223. Ответов 13
Метки нет (Все метки)

Всем добрый день. Интересует вот какой вопрос:
Имеется xls файл, в котором в реальном времени происходит изменение числовых данных. Я хочу с периодичностью, положим, в 1 секунду считывать эти данные и обрабатывать их в матлабе. Если делать так:
Matlab M
1
[A, B] = xlsread(filename)
то всё получается корректно, но слишком долго. Время считывания составляет около секунды, не смотря на то, что размер excel файла достаточно мал. Т.е., видимо, всё время уходит на открытие файла. Как можно решить эту проблему?
Наверное, нужно просто открыть файл на чтение один раз и закрывать только тогда, когда потребуется. Только с помощью каких команд это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2015, 16:59
Ответы с готовыми решениями:

Быстрое считывание 32кб из файла 7гб
Есть бинарный файл размером 6,95 ГБ, он представляет из себя массив short. Необходимо быстро...

Считывание данных из Excel файла
Добрый день. Нужна помощь. Нужно считать данные из Excel файла и при вводе с клавиатуры цифры от...

Считывание записей из файла Excel CSV
Помогите пожалуйста найти проблему try { string...

Считывание данных из запароленного файла Excel
Доброго времени суток! Возникла такая ситуация....считываю данные из Excel файла и с этим проблем...

13
490 / 399 / 40
Регистрация: 17.07.2013
Сообщений: 2,057
19.01.2015, 20:39 2
А в EXCEL по USB что-то пишется или вводится с клавиатуры? Допустимо организовать ввод данных сразу в МАТЛАБ?
0
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
19.01.2015, 21:04  [ТС] 3
Excel получает данные со сторонней программы путём запросов к той программе. Организовать доступ из Матлаб невозможно.
0
490 / 399 / 40
Регистрация: 17.07.2013
Сообщений: 2,057
19.01.2015, 21:27 4
Попробуйте задать этот вопрос спецам из МАТЛАБ:
http://www.mathworks.com/matla... swers/#ask
0
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
19.01.2015, 22:23  [ТС] 5
Я думаю, наверняка, можно же файл excel можно читать не через стандартную xlsread, а через стандартные fread, fopen, fclose.
Может быть кто-нибудь знает как прочесть файл excel с помощью этих функций? Структура excel документа простая. Первая строка символьная, которую и считывать не обязательно. А вторая строка содержит числа int и double. По сути, считать нужно вектор числовых значений.
0
490 / 399 / 40
Регистрация: 17.07.2013
Сообщений: 2,057
19.01.2015, 22:43 6
В EXCEL файле много служебных символов. Если текстовый файл читается быстрее, то excel-файл можно конвертировать в текстовый и с ним работать.
0
936 / 836 / 121
Регистрация: 23.11.2012
Сообщений: 2,487
19.01.2015, 22:55 7
broDiaga_cpp, это все костыли. По какому порту идет передача?
0
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
19.01.2015, 23:02  [ТС] 8
Эм... Данные в excel подаются с помощью функции RealTimeData. Что-то вроде этого
ДРВ("MYcomserver.comapp.1";....)
0
936 / 836 / 121
Регистрация: 23.11.2012
Сообщений: 2,487
20.01.2015, 01:10 9
broDiaga_cpp, это данные из внешнего устройства?
0
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
20.01.2015, 12:58  [ТС] 10
Данные в программу поступают через интернет.
0
2548 / 1642 / 149
Регистрация: 05.06.2011
Сообщений: 4,624
20.01.2015, 14:15 11
Быстрый Excel — утопия, имхо. Можно почитать COM и не открывать файл, а читать содержимое открытого, это чуток быстрее, но всё равно медленно. Быстрее таки, думаю, таки действительно повторить Excelевскую программу, если текст открыт. Там, судя по первой строчке, тоже COM.
0
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
20.01.2015, 16:07  [ТС] 12
А должен же быть аналог екселевской функции RTD в матлабе?
0
490 / 399 / 40
Регистрация: 17.07.2013
Сообщений: 2,057
21.01.2015, 12:18 13
Появилось свеженькое (24 Nov 2014 (Updated 21 Jan 2015)):

For instance 'xlsread' and 'xlswrite' allow the programmer to read data from and write data into Excel worksheets. But these programs are inefficient when a large number of read and write operations have to be repeated because they build a connection to the Excel COM server and then release this connection again with every operation.

http://www.mathworks.com/matla... collection
0
936 / 836 / 121
Регистрация: 23.11.2012
Сообщений: 2,487
25.01.2015, 18:29 14
Цитата Сообщение от broDiaga_cpp Посмотреть сообщение
Данные в программу поступают через интернет.
Можно конкретнее? Ссылку на источник дадите? Или это военная тайна?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2015, 18:29

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

Считывание с Excel файла. Недостаток памяти
Доброго дня! Мне требуется открыть Excel файл, считать содержимое нужной мне ячейки, закрыть файл...

Считывание данных в двумерный массив из Excel файла
Здравствуйте дорогие форумчане! У меня возник вопрос ответ на который я сам не смог найти поэтому...

Считывание данных с Excel файла и ошибка IndexOutOfRange
Пытаюсь считать данные с *.xlsx файла. rng - объект класса Range, ws - Объект класса WorkSheet....

Считывание и сортировка таблицы Excel из .txt файла
Нужно написать программу, которая будет считывать таблицу из Excel таблицы, сохранённой в txt...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.