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)

Answers (1)

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

2 Comments

Stephen23
Stephen23 on 17 Jan 2018
Edited: Stephen23 on 17 Jan 2018
@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.

Sign in to comment.

Asked:

on 17 Jan 2018

Edited:

on 17 Jan 2018

Community Treasure Hunt

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

Start Hunting!