"For colon operator with char operands, first and last operands must be char." error?

22 vues (au cours des 30 derniers jours)
for n=1:1:4
MAT((a:(a+b)),n)=1;
end
a and b are integer numbers that change on each iteration of n
The code is meant to set some zeros in a zero matrix to 1
On the 2nd iteration, i.e. n=2, I keep getting the following error:
"For colon operator with char operands, first and last operands must be char."
  1 commentaire
laurie
laurie le 25 Fév 2015
Modifié(e) : laurie le 25 Fév 2015
% OPTIONS.popsize=4;
% horizon = 6;
% num_gen = 4;
%Population(pop).chrom = structure 'Population' with a cell 'chrom'
% chrom = 1x4 matrix
%Data is also a struct
for pop=1:1:OPTIONS.popsize
Population(pop).chrom2 = zeros(horizon,num_gen);
for n=1:1:num_gen
a=Population(pop).chrom(1,n);
b=Data.tend(n)-Data.tstart(n)-1;
c=a:(a+b)
%Population(pop).chrom2((a:(a+b)),n)=1;
Population(pop).chrom2(c,n)=1;
end
end

Connectez-vous pour commenter.

Réponse acceptée

Guillaume
Guillaume le 25 Fév 2015
According to the error message, a and b are integer numbers is not true. I suspect that a is actually of type char and b may be integer, which would result in a+b being integer.
Without knowing more about a and b, it's hard to help you, so post the code that generate them.
You can check the type of a and b when you get the error by writing
dbstop if error
at the comment prompt before running your loop / program. Matlab will break into the debugger when it encounters the error. At which point you can issue
whos a b
to see their type.
  4 commentaires
Guillaume
Guillaume le 25 Fév 2015
What is the output of
chrom = Population(pop).chrom
whos chrom
when the error occurs? Because that's the source of your problem. Somewhere, you've got a string.
laurie
laurie le 25 Fév 2015
The output was a char, which came from a previous function I created.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Function Creation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by