Я пишу более длинный скрипт для построения некоторых гистограмм в Matlab.Я хочу установить свои собственные цвета полос, когда соблюдаются надлежащие условия.У меня 30 баров на одном участке.Это общий фон, я не буду вставлять сюда этот длинный код, вместо того, чтобы создавать более короткий код, только чтобы проиллюстрировать одну конкретную проблему, с которой я борюсь.По какой-то причине функция bar () в MATLAB не позволяет использовать пользовательские переменные, чтобы указать, какой график должен быть, например, в этом случае, перекрашен.
Вот пример сценария, который я подготовил:
cond_1 = 10;
cond_2 = 8;
i = 1;
cond_SD_1 = 2;
cond_SD_2 = 3;
z = [cond_1, cond_2];
zz = [cond_SD_1, cond_SD_2];
hold on
newName=sprintf('cond_%d',i);
title(newName);
bar(1, cond_1, 'FaceColor', 'Red','LineWidth',2)
bar(2, newName, 'FaceColor', 'Blue','LineWidth',2)
errorbar(z,zz,'color',[.44 .44 .44],'linestyle','none','linewidth',2), grid on, grid minor, box off,
hold off
Итак, давайте предположим, что мы хотим иметь только два бара, как в примере выше.И нам нужно использовать пользовательскую переменную, чтобы сообщить bar()
, какой бар мы хотим изменить.Мы создали переменную в этой строке (newName=sprintf('cond_%d',i);)
- она дала символ cond_1
.Когда мы называем bar()
вот так bar(1, cond_1, 'FaceColor', 'Red','LineWidth',2)
, все работает нормально, но когда мы хотим использовать bar(2, newName, 'FaceColor', 'Blue','LineWidth',2)
, выдается ошибка Unrecognized option "cond_1".
.Я также добавил туда функцию title()
, которая не имеет этой проблемы и прекрасно понимает переменные типа char.title(newName);
с нашим именем пользовательской переменной newName
правильно установлено в качестве заголовка.Я использовал этот метод несколько раз раньше, и кажется, что эта проблема возникает только с функцией bar()
.У кого-нибудь есть идеи как это исправить?
Заранее спасибо за помощь!BM