Usng数据从文本执行操作

1次查看(最近30天)
Nayem
Nayem 2011年4月14日
关闭:MATLAB回答机器人 2021年8月20日
我有一个有三列的数据文件。
数据=[时间,卫星数,距离]
卫星总数=20 (Sat=satellite)
数据文件的问题是,在一定的时间内,只给出4-5颗随机卫星的距离。
假设在t=10s时,sat=2,5,12,17在t=20s时,sat=3,6,10,15在t=20s时,sat=2,5,12,17在t=20s时,sat=3,6,10,15在t=20s时,sat=3,6,10,15
等等。所有这些值都在数据文件中给出。
在每个卫星上执行的方程是相同的,但我想知道如何确保Matlab在某一特定时间识别在运行中的卫星,当它执行计算时,也节省每个卫星结果单独在一个矩阵中,在适当的列或行。
我会计算卫星半径,举个例子
在t = 1:1000s
半径(sat1)=方程(sat1距离)
半径(sat 5)=方程(sat 5距离)
..... ..... .....
我希望做的只是一个步骤,Matlab自动识别Sat no,并将值放入结果矩阵中适当的列或行。
我知道这个问题太长了,但答案并没有那么长。它必须是一些列/行可识别的命令,不幸的是我不知道。
5个评论
Nayem
Nayem 2011年4月15日
我不知道是否用逗号分隔,但你可以直接使用冒号(:,c) (c=column)特性从文件中读取它们。
负载data_File.txt
T = data_file (: 1)
坐= data_file (:, 2)
距离= data_file (:, 2)
我希望这对你有所帮助。现在的问题是,从这个距离计算半径
radius_sat_m = 1.2 (distance_sat_m)
我如何让Matlab检测哪个卫星是在那个实例的时间,也在执行计算后,它为每个不同的(20)卫星在矩阵的值。

登录评论。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2011年4月15日
数据文件中的时间是整数吗?如果是这样,也许John D’errico的MATLAB文件交换贡献“整合器”可能是合适的。
如果要计算的值只取决于距离,那么可以使用accumarray:
accumarray([Times(:), SatNums(:)], distance (:), [], @YourFunction)
1评论
Nayem
Nayem 2011年4月15日
时间不是整数,而是在一段时间内。这个问题24小时(卫星覆盖地球)。
我的数据文件每10秒给出一次时间。

登录评论。

标签

s manbetx 845

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!