установить легенду в цикле for из ячейки в matlab plot - PullRequest
0 голосов
/ 02 сентября 2011

Мне нужна ваша помощь, чтобы решить проблему, с которой я сталкиваюсь, когда пытаюсь создать легенду для сюжета цикла. Код, который я использую, является следующим

for i=3:14
   plot(data(:,i),data(:,2));
   hold all;
end
legend(textdata{1,3:14});

texdata - это 1x14 cell, где хранятся имена легенд, которые я хочу использовать. Когда я запускаю свой скрипт, я получаю график, но вместо легенды я получаю это сообщение об ошибке «??? Индекс превышает размеры матрицы».

edit: я добавляю whos textdata ответ, потому что я не могу написать его хорошим способом при ответе на комментарий

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14             1652  cell               

1 Ответ

0 голосов
/ 03 сентября 2011

Это работало нормально для меня, используя этот код.Длина каждой строки в текстовых данных не должна иметь значения.

data = magic(14);
data(2,:) = 1:10:140;
textdata = {'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n'};


for i=3:14
   plot(data(:,i),data(:,2));
   hold all;
end
legend(textdata{1,3:14});

Если ошибка возникает только при добавлении легенды, вы знаете, что это проблема с текстовыми данными. Ваш график работает нормально, хотя я предполагаю?Вы уверены, что ваши текстовые данные хранятся надлежащим образом?Вполне вероятно, что текстовые данные, в общем-то, отличаются от того, что вы пытаетесь построить.

Попробуйте запустить чей-то комментарий:

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14              868  cell               

edit: комментарии были обновлены, пока янаписал ответ ...

...