Create Legend From Array
359 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Christopher Saltonstall
am 19 Dez. 2017
Bearbeitet: KL
am 19 Dez. 2017
Hello,
I have an array
nN = 6;
N = 1:nN;
I want to make a legend where nN changes and so may not be known ahead of time. I found the following solution on another post, but it doesn't work for me.
legendCell = cellstr(num2str(dope, 'N=%-d'));
legend(legendCell)
I get the error.
Error using legend>process_inputs (line 563)
Cell array argument must be a cell array of character vectors.
Error in legend>make_legend (line 328)
[autoupdate,orient,location,position,children,listen,strings,propargs]
= process_inputs(ha,argin); %#ok
Error in legend (line 282)
make_legend(ha,args(arg:end),version);
So, I tried
for iN = 1:nN
legendCell{iN} = cellstr(['n = ' num2str(N(iN))]);
end
legend(legendCell)
which gives a similar error. However, the following does work.
legendCell = {'n=1', 'n=2', 'n=3', 'n=4', 'n=5', 'n=6'};
legend(legendCell)
Why does the later work but the others don't?
0 Kommentare
Akzeptierte Antwort
Jos (10584)
am 19 Dez. 2017
In the first two codes, legendCell is a cell array of cells ( = {{..} {...}} ) rather than a cell array of strings (= {'..' '..'})! You have a pair of curly braces too many, as cellstr creates a cell, which you then put into a cell :)
Try this:
for iN = 1:nN
legendCell{iN} = num2str(N(iN),'N=%-d');
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Legend finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!