How do I build a cell array of strings?
조회 수: 80 (최근 30일)
이전 댓글 표시
I am trying to build a cell array of strings that can be used as legend text in a plot. A simplified version of what I am trying to do is as follows:
legends = '';
legends = 'this';
legends = {legends; 'this other one'};
legends = {legends; 'this here one here'};
legends = {legends; 'and this other one'};
legend(legends, 'Location', 'SouthOutside');
However, I receive the following error on the legend command:
Cell array argument must be a cell array of strings.
I thought {} were used to generate a cell array of strings. Why is this not working?
댓글 수: 0
채택된 답변
Todd
2013년 3월 27일
Hi Jim,
Remember that cell arrays can hold arbitrary data (including other cell arrays) and that while [] is concatenate, {} is "build a cell array". From the documentation about {}:
"Braces are used to form cell arrays. They are similar to brackets [ ] except that nesting levels are preserved."
Therefore, after your fourth assignment to legends, you actually have a cell array containing two elements, a cell array and a string.
Instead, consider using:
>> legends = {'first'}
legends =
'first'
>> legends(end+1) = {'second'}
legends =
'first' 'second'
>> legends(end+1) = {'third'}
legends =
'first' 'second' 'third'
Even better yet, if you know all the strings ahead of time, generate it all at once such as:
legends = {'first' ...
'second' ...
'third'}
legends =
'first' 'second' 'third'
todd
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Legend에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!