how can I find a short int array from a long int array

조회 수: 1 (최근 30일)
wenlong
wenlong 2017년 4월 30일
댓글: wenlong 2017년 5월 4일
Now I have a long int array including some short array such beginning with 55 and ending 00, whose length was 10, but the contents between 55 and 00 could not be recognized for they were send from serial port. How could I extract those short arrays from the long array? Thanks!
  댓글 수: 4
Walter Roberson
Walter Roberson 2017년 4월 30일
How are you doing the reading from the text file? The details might matter.
wenlong
wenlong 2017년 4월 30일
I had a stm32f0, it just send datas from serial port to pc, I did not use any protocol

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2017년 4월 30일
as_short = typecast(YourLongArray, 'uint16');
sub_pos = find(as_short(1:end-9) == 55 & as_short(10:end) == 0);
short_array = as_short(sub_pos:sub_pos+9);
  댓글 수: 8
Walter Roberson
Walter Roberson 2017년 5월 3일
You would normally need to write a protocol that triggers the mcu to send data, instead of just immediately sending it.
Perhaps you were thinking that when the MCU opens its serial port that the MCU would then wait untl MATLAB opens the serial port on its side before the MCU would proceed to send the data. It is possible to program serial ports that way, but it is not typically done on instruments.
wenlong
wenlong 2017년 5월 4일
Thanks for your suggestion

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by