我有一个叫做single_matrix_with_time_id
的矩阵,第一列对应frame_number
,第二列对应time
,第三列对齐identity
,第四列对齐qzxswpoi,第五和第三列用error
和第七列用X and Y coordinates
。
我想要做的是从Camera_id
获取第二列(time
)中的独特元素和对应于time
的独特元素的元素,并将其添加到名为first and seventh column
的新矩阵的第一,第二和第三列。我尝试在下面显示的代码中执行此操作,但它没有给我预期的结果。附上final_plot_matrix
的代码和图像。任何帮助将不胜感激。
single_matrix_with_time_id
final_plot_matrix = nan(length(unique(single_matrix_with_time_id(:,2)))+1,length(final_filtered_ant_id)+3);
final_plot_matrix(1,4:length(final_filtered_ant_id)+3) =
final_filtered_ant_id;
final_plot_matrix = repelem(final_plot_matrix,1,2);
final_plot_matrix(:,1) = [];
final_plot_matrix(:,2) = [];
final_plot_matrix(:,3) = [];
final_plot_matrix(2:length(unique(single_matrix_with_time_id(:,2)))+1,3) = unique(single_matrix_with_time_id(:,2));
[C,ia,ic] = unique(single_matrix_with_time_id(:,2));
frame_number = ia(single_matrix_with_time_id(:,1));
Camera_id = ia(single_matrix_with_time_id(:,3))
final_plot_matrix(2:length(unique(single_matrix_with_time_id(:,2)))+1,2) = frame_number
final_plot_matrix(2:length(unique(single_matrix_with_time_id(:,2)))+1,1) = Camera_id
看起来你使用“独特”走在正确的轨道上,但它应该比这更简单。在时间数据(第二列)上调用唯一以获取唯一的行号。 Unique返回唯一值作为第一个输出,索引作为第二个输出。我们只关心索引,所以忽略第一个输出。
现在,您可以从原始数据中获知所需的行号和列号。行号在“ia”中,您需要第1,2和7列。因此,创建一个新矩阵:
[~, ia] = unique(single_matrix_with_time_id(:,2);
而已!如果要切换列的顺序(例如,将时间设为第一列而不是第二列),只需切换上一行中列的顺序即可。例如:
final_plot_matrix = single_matrix_with_time_id(ia,[1 2 7]);