convert or translat number to specific word using it for title

1 view (last 30 days)
I am trying to generate a title for my Plot that work according to a Number so lets say if the Number is (1) then the word will be (Normal) if the Number is (2) the words will be (Level1) ..etc
I used the below code for the Title using (renamecats) function but It didn't work I don't know why.
for n = 1:numel(out(1,:))
x=out(2:end,n);
subplot(4,2,n);
plot(t,x);
if n == 3 || n == 4
xlabel('Seconds');
end
title(renamecats({n},string(catnames)));
end
Best Regards,
Yousif
  1 Comment
Adam Danz
Adam Danz on 26 Mar 2023
Edited: Adam Danz on 26 Mar 2023
I think you just need to replace the title(__) line with
title(catnames(n));
or, is the problem that the categorical values are not in the intended order?

Sign in to comment.

Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 26 Mar 2023
Here is onee of the possible solutions with one simple example:
T = randn(4, 15);
t=1:15;
catnames = {'Normal', 'Level 1', 'Level 2', 'Level 3'};
for n = 1:size(T,1)
switch n
case 1
x=T(n,:);
subplot(4,2,n);
plot(t,x);
title (catnames{n})
case 2
x=T(n,:);
subplot(4,2,n);
plot(t,x);
title (catnames{n})
case 3
x=T(n,:);
subplot(4,2,n);
plot(t,x);
title (catnames{n})
case 4
x=T(n,:);
subplot(4,2,n);
plot(t,x);
title (catnames{n})
end
end

Community Treasure Hunt

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

Start Hunting!