Добавление индексов для столбцов - PullRequest
0 голосов
/ 05 сентября 2018

data_2 - это ячейка, содержащая date в первом столбце и time во втором столбце. Всякий раз, когда под меткой времени обнаруживается объект, идентификатор объекта вместе с ошибкой добавляется в следующую строку. (Эти данные взяты из видеозаписей игрушечных машин).

Что я хочу сделать, это добавить увеличивающийся индекс, соответствующий каждой отметке времени. В показанном примере кода я добавляю индекс в первый столбец. Я написал пример кода для выполнения этого. Когда я выполняю это, возрастающий индекс также добавляется для обнаружений под одной отметкой времени.

Например: если вы посмотрите на row 5, есть два обнаружения, и идентификаторы добавляются в строки 6 и 7. Оба они обнаруживаются одновременно. Но там номер кадра не совпадает. Это должно быть то же самое, что и отметка времени, т.е. Любая помощь для решения этой проблемы будет оценена.

 data_2 = {'2018-03-11','15:28:30';'2018-03-11','15:28:32';'2018-03-11','15:28:34';'2018-03-11','15:28:36';'2018-03-11','15:28:38';'27','0';'29','1';'2018-03-11','15:28:40';'2018-03-11','15:28:42';'2018-03-11','15:28:44';'89','2'};
 frame_num_2 = strsplit(num2str(1:size(contains(data_2(:,1),'-'))))';   
 data_2 = [frame_num_2 data_2];

1 Ответ

0 голосов
/ 05 сентября 2018

Если я правильно понимаю вашу проблему, вы хотите, чтобы номер кадра увеличивался на единицу только при наличии новой даты или времени, а не при обнаружении объекта. Чтобы решить эту проблему, вам необходимо определить, когда в строке указана дата или время. Если посмотреть на ваши данные, в столбце даты есть отличия от «-», а в столбце времени - «:». Вы можете использовать один или оба из них, я решил использовать только столбец даты.

data_date = data_2(:,1);
data_time = data_2(:,2);
%data that doesn't have a new frame contains a '-' symbol.  
newFrame = contains(data_date, '-');
frame_num = cumsum(newFrame); %only increase when there is a new frame
Data = [num2cell(frame_num) data_2] %save in a new variable name

, что приводит к данным =

{[1]}    {'2018-03-11'}    {'15:28:30'}
{[2]}    {'2018-03-11'}    {'15:28:32'}
{[3]}    {'2018-03-11'}    {'15:28:34'}
{[4]}    {'2018-03-11'}    {'15:28:36'}
{[5]}    {'2018-03-11'}    {'15:28:38'}
{[5]}    {'27'        }    {'0'       }
{[5]}    {'29'        }    {'1'       }
{[6]}    {'2018-03-11'}    {'15:28:40'}
{[7]}    {'2018-03-11'}    {'15:28:42'}
{[8]}    {'2018-03-11'}    {'15:28:44'}
{[8]}    {'89'        }    {'2'       }
...