Как создать легенду с использованием вектора целых? - PullRequest
0 голосов
/ 23 февраля 2020

Как создать легенду, используя вектор целых, используя Octave 4.4? Я могу создать легенду для графика, используя этот код:

legend({'4','8','16','32',}, 'location', 'northeast');

Я не хочу, чтобы список значений был жестко закодирован, но я хочу использовать вектор целых, поскольку он может измениться в зависимости от входных данных:

v=[4,8,16,32];

Я пробовал это, но он создает легенду без текстов:

legend(cellstr(num2cell(v)), 'location', 'northeast');

1 Ответ

0 голосов
/ 24 февраля 2020

Из документации по legend:

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

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

Вот небольшой пример:

x = 0:100;
v = [4, 8, 16, 32];

hold on;
plot(x, v(1)./x);
plot(x, v(2)./x);
plot(x, v(3)./x);
plot(x, v(4)./x);
hold off;

legend(num2str(v.'), 'location', 'northeast');

Это будет вывод для v = [4, 8, 16, 32]:

Output 1

Это будет вывод для v = [2, 3, 4, 5]:

Output 2

Надеюсь, это поможет!

>> version
ans = 5.1.0
...