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

 
 
> Преобразование типов в Матлаб
AlexMad
сообщение Dec 26 2009, 21:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Есть некоторый файл, в котором хранится структура параметров другого файла.

В матлабе я считываю этот файл, как массив байтов, потом пытаюсь разгрести.

Вот часть описания этой стуктуры

Код
struct VARIATIONAL_PARS_1
  {
     char TimeString[26];            // 26 байт - число и время завершения ввода данных
     WORD ChannelsMax;          // 2 байта - общее число каналов для выбранной платы
     WORD RealChannelsQuantity; // 2 байта - число введенных (активных) каналов
     QWORD  RealKadrsQuantity;    // 8 байт - число собранных кадров в формате 'unsigned __int64' (< 18.446.744.073.709.551.614)
     QWORD  RealSamplesQuantity;  // 8 байт - число собранных отсчетов в формате 'unsigned __int64' (< 18.446.744.073.709.551.614)
     long double TotalTime;       // 10 байт - время ввода в cекундах в формате 'LONG DOUBLE'
     double AdcRate;             // 8 байт - частота АЦП в кГц в формате 'DOUBLE'
     double InterkadrDelay;      // 8 байт - межкадровая задержка в млс в формате 'DOUBLE'
     double ChannelRate;         // 8 байт - частота сбора данных с одного канала в кГц в формате 'FLOAT'
     BOOL  ActiveAdcChannelArray[MAX_ADC_CHANNEL_QUANTITY];      // 4байта*32 - массив, каждый элемент
                                                // которого равен нулю или единице, единичное значение
                                                // соответствует тому, что данный вход активен


Строки и целые числа из считанного массива получить не проблема. А вот как преобразовать массив байтов в double средствами именно матлаб?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Methane
сообщение Dec 26 2009, 21:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Не понял.
http://www.mathworks.com/access/helpdesk/h.../ref/fread.html

Сообщение отредактировал rezident - Dec 26 2009, 22:49
Причина редактирования: Нарушение п.3.4 Правил форума.
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Dec 26 2009, 22:13
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Цитата(Methane @ Dec 27 2009, 00:45) *

Именно этим и пользуюсь, возможно, не использую все возможности?!

Просто тогда другой вопрос: как считать файл в структуру?


В Си без использования #pragma pack(1)
нормально не считывается, а как это же сделать на языке матлаба?




Код
fseek(fid,109,'bof')
tststr = fread(fid, 1, 'double')


Вот так работает. Но это не снимает вопроса про преобразование типов, ибо в структуре есть еще

Код
long double TotalTime;       // 10 байт - время ввода в cекундах в формате 'LONG DOUBLE'


Который надо как-то прочитать
Go to the top of the page
 
+Quote Post



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

 


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


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