matlab intersect函数是否无法处理两组datetime?
从数据库获得CSV文件数据进行readtable处理之后,时间自动转成datetime,但调用intersect 函数时一直报错:A B 必须有相同变量
如果是因为标题原因,将如何解决这一问题:实现找出两组时间的交集?
matlab intersect函数是否无法处理两组datetime?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- xia0xin 2023-03-27 22:26关注
intersect 函数是可以处理两组 datetime 类型的数据的。如果在调用 intersect 函数时报错 A B 必须有相同变量,这通常意味着你需要确保 A 和 B 中包含的变量名称是相同的。
在读取 CSV 文件并使用 readtable 函数生成表格变量时,表格变量的列名称与 CSV 文件的第一行标题是一致的。因此,如果你的 CSV 文件中包含标题行,则表格变量中的列名称也将自动设置为与标题行相同的名称。
当你调用 intersect 函数时,如果需要比较的变量名称在 A 和 B 中的列名称不同,就会出现 A B 必须有相同变量的错误。此时,可以使用 ismember 函数来获取 A 和 B 中相同变量名称的索引,然后在调用 intersect 函数时指定相同的变量名称。
例如,假设你的表格变量 A 和 B 分别包含了名称为 "Time" 和 "Timestamp" 的时间变量,你可以使用以下代码找出两组时间的交集:
% 读取 CSV 文件生成表格变量 A 和 B A = readtable('data_A.csv'); B = readtable('data_B.csv'); % 将时间变量转换为 datetime 类型 A.Time = datetime(A.Time); B.Timestamp = datetime(B.Timestamp); % 获取 A 和 B 中包含的相同变量名称的索引 [~, idxA, idxB] = intersect(A.Properties.VariableNames, B.Properties.VariableNames); % 指定变量名称并调用 intersect 函数 C = intersect(A(:, idxA), B(:, idxB), 'rows', 'stable'); 在这个例子中,intersect 函数的第一个输入参数使用了 A(:, idxA),其中 idxA 是一个向量,包含了变量 "Time" 在 A 中的索引。同样,B(:, idxB) 也指定了变量 "Timestamp" 在 B 中的索引。因此,使用这种方式可以处理表格变量中包含不同变量名称的情况。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!