changing titles for subplots in a for loop

3 views (last 30 days)
hello
I have a code like this
for s=1:8;
r=[16,81,22,87,25,90,26,91];
subplot(4,2,s)
plot(tf,Js(1:length(tf),r(s)));
xlabel('$t_f$','interpreter','latex')
ylabel('$J$','interpreter','latex')
end
and I want the following titles for each subplot
x/D=1,z/h=0.13 , x/D=1,z/h=0.8
x/D=4,z/h=0.13 , x/D=4,z/h=0.8
x/D=8,z/h=0.13 , x/D=8,z/h=0.8
x/D=12,z/h=0.13 , x/D=12,z/h=0.8
what is the best way for that?
thanks

Accepted Answer

Adam Danz
Adam Danz on 24 Dec 2019
Use sprintf() to define the subplot titles.
titleRows = repmat([1;4;8;12],1,2).'; % x/D values
titleCols = repmat([0.13, 0.8],4,1).'; % z/h values
for s=1:8
r=[16,81,22,87,25,90,26,91];
subplot(4,2,s)
plot(tf,Js(1:length(tf),r(s)));
xlabel('$t_f$','interpreter','latex')
ylabel('$J$','interpreter','latex')
title(sprintf('x/D=%.0f, z/h=%.2f',titleRows(s),titleCols(s)))
end

More Answers (0)

Community Treasure Hunt

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

Start Hunting!