## How to resolve Matlab error: Cell contents reference from a non-cell array object.; while solving tsp using particle swarm optimization

Asked by shruti Gandhi

### shruti Gandhi (view profile)

on 15 May 2013
```function scores = traveling_salesman_fitness(x,distances)
%TRAVELING_SALESMAN_FITNESS  Custom fitness function for TSP.
%   SCORES = TRAVELING_SALESMAN_FITNESS(X,DISTANCES) Calculate the fitness
%   of an individual. The fitness is the total distance traveled for an
%   ordered set of cities in X. DISTANCE(A,B) is the distance from the city
%   A to the city B.
```
`   scores = zeros(size(x,1),1);`
```   for j = 1:size(x,1)
% here is where the special knowledge that the population is a cell
% array is used. Normally, this would be pop(j,:);
p = abs(x{j}); % HERE APPEARS THE ERROR```
```    f = distances((p(end)),(p(1)));
for i = 2:length(p)
f = f + distances(p(i-1),p(i));
end
scores(j) = f;
end```

## Products

No products are associated with this question.

### Walter Roberson (view profile)

Answer by Walter Roberson

### Walter Roberson (view profile)

on 15 May 2013

There is nothing in what you show that would establish for us that x will be a cell array when it is passed in. We need to see how it is constructed.

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi