MATLAB Answers

shruti Gandhi

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
on 15 May 2013
function scores = traveling_salesman_fitness(x,distances)
%TRAVELING_SALESMAN_FITNESS  Custom fitness function for TSP.
%   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));
    scores(j) = f;



No products are associated with this question.

1 Answer

Answer by Walter Roberson
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!

Learn more
Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!