How to add cell array as index in plot title

2 vues (au cours des 30 derniers jours)
Yunwei
Yunwei le 1 Fév 2024
Déplacé(e) : Dyuman Joshi le 1 Fév 2024
Hello all,
I have been trying to get cell array (as index) to be part of the plot title.
figure
tlo = tiledlayout (3,1);
data = {a, b, c};
title_s={50;25;10};
for i = 1:numel(data)
t=title_s{i};
ax = nexttile(tlo);
histogram(ax, data{i},'BinWidth',1,'BinEdges',1:1:25)
title(['Example\_' num2str(t) 'm (8H)'],FontSize=16);
end
When I add the line of title I got the error 'Unable to use a value of type string as an index.
Can anyone help to make it work?
Thanks a lot!
  3 commentaires
Yunwei
Yunwei le 1 Fév 2024
Hi,
I attach the data l used. The MATLAB version l use is 2021b.
Dyuman Joshi
Dyuman Joshi le 1 Fév 2024
Even with the data you have attached, the code works here without any error -
Have you copied and pasted the right code?
load("data.mat")
tlo = tiledlayout(3,1);
title_s = {50;25;10};
for i = 1:numel(title_s)
t=title_s{i};
ax = nexttile(tlo);
histogram(ax, 25*rand(1,100),'BinWidth',1,'BinEdges',1:1:25)
title(['Example\_' num2str(t) 'm (8H)'],FontSize=16);
end

Connectez-vous pour commenter.

Réponses (2)

Catalytic
Catalytic le 1 Fév 2024
Modifié(e) : Catalytic le 1 Fév 2024
I suspect that the code you've shown us is not the code that produces the error. I suspect you did this instead -
figure
tlo = tiledlayout(3,1);
data = {randn(1,100),2,3};
title={50;25;10};
for i = 1:numel(data)
t=title{i};
ax = nexttile(tlo);
histogram(ax, data{i},'BinWidth',1,'BinEdges',1:1:25);
title(['Example\_' num2str(t) 'm (8H)'],FontSize=16);
end
Unable to use a value of type string as an index.

Yunwei
Yunwei le 1 Fév 2024
Déplacé(e) : Dyuman Joshi le 1 Fév 2024
I close matlab then run the code again, and the error is gone.
So l guess the code is correct.
Thank you!

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by