How to convert python code to matlab

import random
from operator import itemgetter
POWER_PER_MOVE_UNIT = 0.2
LOCALIZATION_COST = 0.3
def generate_nodes(nr_of_nodes):
return [{'nr': i, 'power': random.uniform(0, 25)} for i in range(nr_of_nodes)]
def generate_distances(nodes):
return [random.randint(1, 10) for _ in range(0, len(nodes) - 1)]
nodes = generate_nodes(10)
Nd = generate_distances(nodes)
print("NODES", nodes)
print("Distances", Nd)
def get_power(previous_power):
return previous_power - random.uniform(0.1, 1)
def explore(mcr, nodes):
vNodes = []
v = []
C = 0
power = mcr
for i, node in enumerate(nodes):
power = get_power(power)
hp = mcr - power
v, C, l = charge(vNodes, power - hp)
power = power - C - hp
if can_visit_more_nodes(power, i):
vNodes.append(node)
else:
break
print("V NODES", vNodes)
print("POWER", power)
def charge(vNodes, power):
sNodes = sorted(vNodes, key=lambda k: k['power'])
v = []
v1 = []
C = 0
l = 0
for i, node in enumerate(sNodes[:-2]):
sPower = node['power']
tPower = sNodes[i+1]['power']
v1.append(node)
needed_power = LOCALIZATION_COST + (tPower - sPower) * (1 + len(v1))
if power > needed_power:
v = v1
C = C + needed_power
l = tPower
else:
return v, C, l
return v, C, l
def can_visit_more_nodes(power, i):
if power >= 2 * Nd[i] * POWER_PER_MOVE_UNIT:
return True
else:
return False
explore(500, nodes)

回答(1 个)

User18
User18 2018-1-17
Can somebody help me get the exact code of this in matlab because i dont need to just call it from poython?

2 个评论

@User18: you have accepted an answer, which tells everyone that your question has been resolved.
Or did it not resolve your question?
Yes you're right,i thought it worked for me. But anyways i might need some help since im not so good at matlab.I have a deadline for this in school.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Call Python from MATLAB 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by