[英]Array intersection issue (Matlab)
为了便于阅读,数组的格式不同,并且您希望使它们相同。 有许多选项供您选择,例如@Visser建议,您可以将日期/时间转换为长整数,从而可以更快地进行计算,也可以将其保留为字符串,甚至可以将其转换为字符(例如对char所做的操作) (Array2))。
这是我的示例:
A = {'00:00:00';'00:01:01'} %//Type is Cell String
Z = ['00:00:00';'00:01:01'] %//Type is Cell Char
Q = {{'00:00:00'};{'00:01:01'}} %//Type is a Cell of Cells
A = cellstr(A) %//Convert CellStr to CellStr is essentially doing nothing
Z = cellstr(Z) %//Convert CellChar to CellStr
Q = vertcat(Q{:,:}) %// Convert Cell of Cells to Cell of Strings
I = intersect (A,Z)
>>'00:00:00'
'00:01:01'
II = intersect (A,Q)
>>'00:00:00'
'00:01:01'
如果您想将日期导出回txt / csv文件,这会将日期保留为字符串格式。
您的第一个数组如下所示:
array1 = linspace(0,1,86400); % creates 86400 seconds in 1 day
您的第二个数组应使用datenum
进行转换,然后使用cell2mat
使其成为矩阵。 最后,使用ismember
查找交叉点:
InterSect = ismember(array2,array1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.