使用实时数据Matlab进行错误处理
问题描述:
我正在使用返回下一个到达列车的实时数据API。我计划给用户接下来的5班列车。如果少于5列火车到达,你如何处理?我在思考一个方法时遇到了麻烦,我正在考虑如何使用if语句,但不知道如何设置它们。使用实时数据Matlab进行错误处理
time1Depart = dataReturnedFromLiveAPI{1,1}.orig_departure_time;
time2Depart = dataReturnedFromLiveAPI{1,2}.orig_departure_time;
time3Depart = dataReturnedFromLiveAPI{1,3}.orig_departure_time;
time4Depart = dataReturnedFromLiveAPI{1,4}.orig_departure_time;
time5Depart = dataReturnedFromLiveAPI{1,5}.orig_departure_time;
time1Arrival = dataReturnedFromLiveAPI{1,1}.orig_arrival_time;
time2Arrival = dataReturnedFromLiveAPI{1,2}.orig_arrival_time;
time3Arrival = dataReturnedFromLiveAPI{1,3}.orig_arrival_time;
time4Arrival = dataReturnedFromLiveAPI{1,4}.orig_arrival_time;
time5Arrival = dataReturnedFromLiveAPI{1,5}.orig_arrival_time;
的代码,现在使用了从1矩阵:numoftrains但我只用第5位。
答
将个别值分配给单独的变量是个不好的做法。如果您将所有相关值传递给矢量或单元阵列,则取决于类别orig_departure_time
和orig_arrival_time
。
看起来像dataReturnedFromLiveAPI
是一个结构的单元阵列。然后,你可以这样做:
timeDepart = cellfun(@(x), x.orig_departure_time, ...
dataReturnedFromLiveAPI(1,1:min(5,size(dataReturnedFromLiveAPI,2))), ...
'UniformOutput',0);
timeArrival = cellfun(@(x), x.orig_arrival_time, ...
dataReturnedFromLiveAPI(1,1:min(5,size(dataReturnedFromLiveAPI,2))), ...
'UniformOutput',0);
那么如何通过一个作为
time1Depart = timeDepart{1};
如果orig_departure_time
和orig_arrival_time
是数字标量,你可以使用...'UniformOutput',1...
访问值之一。你将得到输出为一个向量,并可以得到单个值与timeDepart(1)
。