Filter löschen
Filter löschen

Cell array indexing in loop for subplot titles

2 Ansichten (letzte 30 Tage)
Jason
Jason am 22 Okt. 2019
Bearbeitet: Stephen23 am 22 Okt. 2019
Hello, I can't see where my mistake is.
I have data (from a uitable) in whcih columns 2-6 are values I want to plot on 5 different subplots:
title={'# objects','centroid mean','centroid mode','FM','Q99'}
n=size(data,1) %number of rows in my data table
X=linspace(1,n, n)
for i=2:6
Y=data(:,i)
if isa(Y,'cell') %if data is a cell array, then convert to ordinary data type.
Y=cell2mat(Y);
end
subplot(2,3,i-1)
plot(X,Y,'r*--')
grid
set(gca,'fontsize',8)
tl=title{i-1}
class(tl)
title(tl,'color','r')
end
Im getting an error message (in the line title(tl,'color','r')) :
'Index in position 1 exceeds array bounds (must not exceed 1).'

Akzeptierte Antwort

Stephen23
Stephen23 am 22 Okt. 2019
Bearbeitet: Stephen23 am 22 Okt. 2019
You defined a variable named title:
title={'# objects','centroid mean','centroid mode','FM','Q99'}
which shadows the title function (making the title function unusable). You then use indexing into your variable (which you probably think is calling the title function, but in reality is subscript indexing, because you defined that title variable):
title(tl,'color','r')
Do NOT use title as a variable name! (or save or cell or length or ...)
Change that variable name to something else, clear your workspace, and try again.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by