hey guys,(adsbygoogle = window.adsbygoogle || []).push({});

i want to wirte a function which takes as its arguments two lists of co-ordinates (the first

is a list of customers and the second for possible switch locations), and determines the index of the best switch location to minimise the amount of cable required.

I have done the following:

this code keeps coming back with errors that i am not able figure out how to solve it.Code (Text):

%Get the number of customers%

NC = input('Enter the number of costumers there is: ');

customers = [];

%Get each customers co-ordinates and place them into an array%

for i = 1:NC

%could also possibly get input as x y ..

x = input('Enter the x value of costumer %.1d : ', i);

y = input('Enter the y value of costumer %.1d : ', i);

%Array to hold customers%

customers = [customers;x y];

end

%Get the number of switches%

NS = input('Enter the number of switches there is: ');

switches=[];

%Get each switchs co-ordinates and place them into an array%

for i = 1:NS

%could also possibly get input as x y ..

x = input('Enter the x value of switch %.1d : ', i);

y = input('Enter the y value of switch %.1d : ', i);

%Array to hold customers%

switches = [switches;x y];

end

%Create an array with the same size as the number of switches to hold the total cable lengths%

switch_sizes=[];

%do two jobs at once - find the lengths and keep track of the smallest one and the index of the smallest%

smallest_total = 0;

smallest_index = 0;

%For each switch%

for i = 1:NS

%get co-ords of the switch we are looking at%

xs = switches(i,1);

ys = switches(i,2);

%Set total to zero%

total = 0;

%For each customer%

for j = 1:NC

%Calculate the distance between the customer and the switch%

x= customers(j,1);

y= customers(j,2);

distance = sqrt(((x - xs)^2)+((y-ys)^2));

%TODO%

%Add it to the total for this switch%

total = total + distance;

end

if (smallest_total > total)

smallest_total = total;

smallest_index = i;

end

%enter the total for this switch into the total cable lengths array%

switch_sizes = [switch_sizes; total];

end

%Return the co-ordinates of the switch with the lowest value in the array of total cable lengths%

%check syntax%

%not sure whether he wants co-ordinates or the index, returning index as it says in the brief but check%

return smallest_index;

%alternative return switches(smallest_index); %

Any advise on how to go about this?

thanks

**Physics Forums | Science Articles, Homework Help, Discussion**

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Matlab code to calculate minimum distance

**Physics Forums | Science Articles, Homework Help, Discussion**