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

 
 
> Преобразование данных в Матлаб, Преобразование
Muscat
сообщение Feb 16 2011, 19:09
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Задумался вот над каким вопросом, как более менее изящно решить следующую задачу.

Из COM2-порта читаются байты по 6 бит.
RCVD=fread(s,4);
Для простоты рассмотрена последовательность из 4 байт.

Предположим, что получено
Rcvd=[65,47,23,10]

Далее можно увидеть данные в бинарном виде

Bin_Mat=dec2bin(Rcvd);

111111
101111
010111
001010

Затем эти биты выстраиваются в одну строчку
BitStream=reshape(Bin_Mat',1,24)

BitStream =

111111101111010111001010

В результате получается строка, где единички и нолики представлены символами. Задача, каждый этот символ преобразовать в число. Чтобы в результате получилась матрицы чисел - единиц и нулей. Как это сделать? Вариант с циклом
for i=1:24
data_3(i)=bin2dec(BitStream(i));
end
не предлагать.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Muscat
сообщение Feb 16 2011, 19:47
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Спасибо! И в правду работает без цикла. Но только "идеология" все равно такая же получается, после транспонирования строки поочередный перебор строчек.
Хотелось бы как то ускорить этот процесс. Подозреваю, что есть какой то более простой и быстрый способ, нежели выдуманный мной


--------------------
Because it's there
Go to the top of the page
 
+Quote Post



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

 


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


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