Cell contents reference from a non-cell array object.?

Hello
I have a 1x1 struct small with the fields
small.bound5 with 1x20 cells (each cell with 2 variables
small.bound10 1x 20cells (each cells with 2 variables
small.average 1x 20 cells (each cell with one variable
small.data (1x20 cells) (each cells with 288x1 colum of data)
I am trying to excecute the following code and keep getting the error. I understand that i am referencing some thing wrong. PLEASE HELP
% code
crit=.1;
for i = 1:length(small.average)
for j=1:length(small.bound5{i})
if small.bound5{i}{j}(1)>=small.average{i}*(1-crit) && small.bound5{i}{j}(2)<=small.average{i}*(1+crit)
count(i,j)=1;
else
count(i,j)=0;
end
end
end
for j=1:length(small.bound5{i})
pin(j)=sum(count(:,j))/length(count(:,j));
end
figure3=figure;
axes3=axes('parent',figure3);
plot(full,pin,'x-k')
ylabel(['percent of dogs with match of <',num2str(crit*100),'%'],'fontsize',lfont)
xlabel('timestep (hr)','fontsize',lfont)
I am getting the error with the line,
small.bound5{i}{j}(1)>=small.average{i}*(1-crit) && small.bound5{i}{j}(2)<=small.average{i}*(1+crit)
The error

Réponses (1)

Image Analyst
Image Analyst le 7 Août 2016

0 votes

small.bound5 is a 1-D cell array. A 1-d vector of 20 cells. It is NOT a 2-D matrix of cells. So you can't do small.bound5{i}{j} which assumes that it's a 2-D array. You can only use one index with it, not 2. See the FAQ: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F

Catégories

En savoir plus sur Functions dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by