MATLAB: How to subset the ylables to be displayed only on certain rows

if statementplot

I have 24 series to plot but I would like to have the y-label displayed only on the rows 1,7,13,19.
I tried this solution but it is not successful:
x = randn(30, 24) % data
y_label_names = {'%', '%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%'};
for j = 1:24
subplot(4, 6, j);
plot(x(:,j));
hold on
if (j > 18)
xlabel('months');
end
if (mod(j,3)==1) % here I would only have y-lables for rows 1,7,13 and 19
ylabel(y_label_names{j})
end
yline(0, '-')
end
Can anyone help me?
Thanks!

Best Answer

  • hello
    my suggestion
    x = randn(30, 24); % data
    y_label_names = {'§', '%','%','%','%','%','§','%','%','%','%','%','§','%','%','%','%','%','§','%','%','%','%','%'};
    for j = 1:24
    subplot(4, 6, j);
    plot(x(:,j));
    hold on
    if (j > 18)
    xlabel('months');
    end
    % if (mod(j,3)==1) % here I would only have y-lables for rows 1,7,13 and 19
    if any((j - [1 7 13 19]) == 0)
    ylabel(y_label_names{j})
    end
    yline