当我正在进行车辆到车辆通信的项目时,我需要计算所有给定模拟时间的车辆node[0]
和车辆node[1]
之间的距离。
由于向量数据中有posx
和posy
,我可以在.csv
文件中输出它们,但问题是所有数据都被分成不同的csv文件,例如,node[0]
posx
位于一个文件中,但node[0]
posy
位于另一个文件中。
我必须手动打开两个文件并将结果复制并粘贴在一起。由于每个模拟中有四个不同的值,我每次都要打开四个不同的文件。
如果在模拟上有20个不同的迭代,那意味着我必须打开80个文件以获得我想要的车辆之间的距离。有没有更快更容易的方法来完成这个过程?
答案 0 :(得分:1)
如果您计划通过查看单个.csv
文件来计算距离,可以使用更高级的工具(如R
(或Rsutdio IDE))将csv合并到更大的csv中,然后执行自己的计算。
测量静脉中两个实体之间距离的更好方法是使用distance()
类中的Coord.h
函数。这将比较两个坐标并提供它们之间的距离。
下面的代码应该给你一个粗略的概念,虽然它并不完全适用于你的情况。
Coord eNodePos = Imobility->getCurrentPosition();
Coord selfPos = mobility->getCurrentPosition();
float distance = selfPos.distance(eNodePos);
您也可以使用getDistance()
中的TraCICommandInterface
个功能之一。这可能更适合你。 TraCITestApp.cc
将让您了解如何使用这些功能。
如果您需要比较两个以上的成对距离,那么您最好在模拟中创建一个特定模块,该模块将有一个表格,用于收集每个模拟秒的车辆位置和ID ,然后在向量中输出它们之间的距离。
很抱歉,由于您的问题缺乏提供即用型解决方案的代码的详细信息,因此无法使用。