Если вы работаете в системе на основе Unix (Linux / Mac), вы можете напрямую использовать системные команды, чтобы делать то, что вы хотите. Вот пример файла теста:
12345 accx accy accz gyrox gyroy gyroz magx magy magz
23456 accx accy accz gyrox gyroy gyroz magx magy magz
34567 accx accy accz gyrox gyroy gyroz magx magy magz
45678 accx accy accz gyrox gyroy gyroz magx magy magz
56789 accx accy accz gyrox gyroy gyroz magx magy magz
67890 accx accy accz gyrox gyroy gyroz magx magy magz
Вы можете прочитать его, используя tail
в Unix и непосредственно в MATLAB, используя команду system
.
[~, str]=system('tail -n 2 filename')
str =
56789 accx accy accz gyrox gyroy gyroz magx magy magz
67890 accx accy accz gyrox gyroy gyroz magx magy magz
Замените 2
в -n 2
тем количеством строк, которое вы хотите прочитать.
Далее, чтобы убедиться, что вы читаете ту же строку, вы можете сохранить временные метки (первый столбец). Самый простой способ сделать это - снова позволить unix сделать это за вас
[~, timestamp]=system('tail -n 2 filename | awk ''{print $1}''')
timestamp =
56789
67890
Преобразуйте его в числа, используя str2num
, и сохраняйте их каждый раз, когда вы читаете, а затем используйте функцию ismember
, чтобы проверить, является ли новая отметка времени уже частью ранее прочитанных вами отметок времени.