par_crowd=CrowdDis1(tp1); crow_value=par_crowd(find(par_crowd~=Inf));
时间: 2024-04-08 12:36:09 浏览: 90
这段代码的作用是计算`tp1`中的元素在`CrowdDis1`函数中的值,并将不等于无穷大的值存储在`crow_value`变量中。
首先,`CrowdDis1(tp1)`表示将`tp1`中的元素作为参数传递给`CrowdDis1`函数,并计算出相应的结果。这个结果被赋值给变量`par_crowd`。
接着,`par_crowd(find(par_crowd~=Inf))`表示找到`par_crowd`中不等于无穷大的元素,并将这些元素存储在`crow_value`变量中。`find(par_crowd~=Inf)`用于找到满足条件的元素的索引,然后通过索引操作符将这些元素提取出来。
最终,`crow_value`中存储的是`par_crowd`中不等于无穷大的值。
相关问题
def calCrowdcarCost(crowd_route_list, model): cost_of_distance = 0 crowd_wait_time = 0 model.crowdcarcost = 0 for route in crowd_route_list: timetable = [] for i in range(len(route)): if i == 0: depot_id = route[i] next_node_id = route[i+1] cost_of_distance = model.distance_matrix[depot_id, next_node_id] travel_time = int(model.distance_matrix[depot_id, next_node_id]) departure = max(0, model.demand_dict[next_node_id].start_time - travel_time) if departure == 0: crowd_wait_time = travel_time - model.demand_dict[next_node_id].start_time timetable.append((departure, departure)) elif 1 <= i <= len(route)-2: last_node_id = route[i-1] current_node_id = route[i] current_node = model.demand_dict[current_node_id] travel_time = int(model.distance_matrix[last_node_id, current_node_id]) cost_of_distance += model.distance_matrix[last_node_id, current_node_id] arrival = max(timetable[-1][1]+travel_time, current_node.start_time) if arrival == timetable[-1][1]+travel_time: crowd_wait_time += timetable[-1][1]+travel_time - current_node.start_time else: break model.crowdcarcost += model.fixcost + model.percost * cost_of_distance return model.crowdcarcost, crowd_wait_time 在这一段代码中我想知道每个点的等待时间总和,等待时间等于到达这个的时间减去它的时间窗上限
在这段代码中,你已经计算了每个点的等待时间,它们被累加到了`crowd_wait_time`变量中。如果你想得到每个点的等待时间总和,可以在循环中添加一个变量来记录。以下是修改后的代码:
```python
def calCrowdcarCost(crowd_route_list, model):
cost_of_distance = 0
crowd_wait_time = 0
point_wait_time = {} # 记录每个点的等待时间
model.crowdcarcost = 0
for route in crowd_route_list:
timetable = []
for i in range(len(route)):
if i == 0:
depot_id = route[i]
next_node_id = route[i+1]
cost_of_distance = model.distance_matrix[depot_id, next_node_id]
travel_time = int(model.distance_matrix[depot_id, next_node_id])
departure = max(0, model.demand_dict[next_node_id].start_time - travel_time)
if departure == 0:
crowd_wait_time = travel_time - model.demand_dict[next_node_id].start_time
point_wait_time[next_node_id] = travel_time - model.demand_dict[next_node_id].start_time
timetable.append((departure, departure))
elif 1 <= i <= len(route)-2:
last_node_id = route[i-1]
current_node_id = route[i]
current_node = model.demand_dict[current_node_id]
travel_time = int(model.distance_matrix[last_node_id, current_node_id])
cost_of_distance += model.distance_matrix[last_node_id, current_node_id]
arrival = max(timetable[-1][1]+travel_time, current_node.start_time)
if arrival == timetable[-1][1]+travel_time:
wait_time = timetable[-1][1]+travel_time - current_node.start_time
crowd_wait_time += wait_time
point_wait_time[current_node_id] = wait_time
else:
break
model.crowdcarcost += model.fixcost + model.percost * cost_of_distance
return model.crowdcarcost, crowd_wait_time, point_wait_time
```
这样,`point_wait_time`字典中的每个键值对代表一个点的等待时间,其中键为点的ID,值为该点的等待时间。
解释一下 # 路径 path = 'D:\\desk\\LaughDetection-master\\crowd_laugh_1.wav' # 时间序列 采样概率 num,samplerate = librosa.load(path, mono=True, sr=None, offset=0.0, duration=None) # 音频时间 time = librosa.get_duration(y = num, sr=samplerate, S=None, n_fft=2048, hop_length=512, center=True, path=path) # mfcc处理 mfcc_data = librosa.feature.mfcc(y=num, sr=samplerate, S=None, n_mfcc=1,hop_length=512, n_fft=2048) # 绘制波形的幅度包络线 librosa.display.waveshow(y = num, sr=samplerate, axis='time', offset=0.0, ax=None) plt.show() path1 = 'D:\\desk\\LaughDetection-master\\freinds_laugh.wav' num1, samplerate1 = librosa.load(path1, mono=True, sr=None, offset=0.0, duration=None) time1 = librosa.get_duration(y=num1, sr=samplerate1, S=None, n_fft=2048, hop_length=512, center=True, path=path1) mfcc_data1 = librosa.feature.mfcc(y=num1, sr=samplerate1, S=None, n_mfcc=1,hop_length=512, n_fft=2048) # 绘制波形的幅度包络线 librosa.display.waveshow(y=num1, sr=samplerate1, axis='time', offset=0.0, ax=None) plt.show() print(num)
这段代码是使用Python的librosa库对音频文件进行处理和分析的过程。具体解释如下:
- 第一行是定义音频文件的路径。
- 第二行是使用librosa库中的load函数读取音频文件,并返回音频的时间序列和采样率。
- 第三行是使用librosa库中的get_duration函数计算音频文件的时长。
- 第四行是使用librosa库中的feature.mfcc函数提取音频文件的MFCC特征。
- 第五行是使用librosa库中的display.waveshow函数绘制音频文件的波形图。
- 第六行是展示波形图。
- 第七行是定义另一个音频文件的路径。
- 第八行是使用librosa库中的load函数读取另一个音频文件,并返回音频的时间序列和采样率。
- 第九行是使用librosa库中的get_duration函数计算另一个音频文件的时长。
- 第十行是使用librosa库中的feature.mfcc函数提取另一个音频文件的MFCC特征。
- 第十一行是使用librosa库中的display.waveshow函数绘制另一个音频文件的波形图。
- 第十二行是展示另一个波形图。
- 第十三行是打印出第一个音频文件的时间序列。
阅读全文