Info

This question is closed. Reopen it to edit or answer.

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

1 view (last 30 days)
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

Answers (1)

Walter Roberson
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.

Community Treasure Hunt

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

Start Hunting!