Different size definition in Matlab and Simulink

1 view (last 30 days)
Leon
Leon on 16 Dec 2022
Commented: Leon on 18 Dec 2022
I am trying to work with TCP/IP communication in Simulink using "Simulink Coder" and "Simulink Desktop Real-Time" and faced a confusing problem. The size of an expression in Matlab is [1, 1].
>> bytes = uint8([0, 1]);
>> byte = typecast(bytes, 'uint16');
>> size(typecast(bytes, 'uint16'))
ans =
1 1
>>
However, when the same exact expression is run in Simulink through the "Matlab Function" block, the result size is [8, 1], but it is needed to be [1, 1].
How could it be solved or explained?

Answers (1)

VBBV
VBBV on 16 Dec 2022
Edited: VBBV on 16 Dec 2022
It seems you are accessing 2 elements of array data with each representing 4 byte register address. Each element of which has 4 digits. For example, a 32 Bit x86 chip has register length of 4 byte can be stored and accessed as you did

Community Treasure Hunt

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

Start Hunting!