Is there a way to simulate a struct with a array?
Show older comments
Hello friends?
I need to implement some code I have done in C, and conver it to matlab. Can someone help me to simulate the following struct in matlab array?
typedef struct _RTC_C_Calendar
{
uint32_t seconds;
uint32_t minutes;
uint32_t hours;
uint32_t dayOfWeek;
uint32_t dayOfmonth;
uint32_t month;
uint32_t year;
} RTC_C_Calendar; // 28 bytes
struct long_byte {
union {
uint32_t val;
uint8_t id[4];
};
};
Answers (1)
Walter Roberson
on 27 Sep 2022
RTC_C_Calendar = zeros(Rows, 7,'uint32');
Now create variable names like dayOfWeek = 4;
and then you can index RTC_C_CALENDAR(row, dayOfWeek) and then the rest of your code does not need to know what the order of the fields is.
6 Comments
Walter Roberson
on 27 Sep 2022
Reminder you can num2cell and cell2struct to convert an array to struct.
Biza Ferreira
on 27 Sep 2022
Moved: Steven Lord
on 27 Sep 2022
For operations on your long_byte use typecast, potentially in conjunction with swapbytes.
x = int8([12, 34, 56, 78])
y = typecast(x, 'int32')
format hex
x
y
swapbytes(y)
Walter Roberson
on 27 Sep 2022
Why convert it to hexadecimal?
Perhaps read the binary using memmapfile()?
Biza Ferreira
on 27 Sep 2022
Walter Roberson
on 27 Sep 2022
See the example at https://www.mathworks.com/help/matlab/ref/memmapfile.html#bt3tmd4-1 for handling effectively a repeated struct
Categories
Find more on Manage Products in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!