У меня есть следующий код в Matlab, который проходит через цикл for, считывает данные из файла и отображает 9 разных цифр, которые соответствуют некоторым определенным «каналам» в моем данных, поэтому я решил аннотировать их в цикле for.Создание блоков аннотаций для подзадач в петле в Matlab
clear
clc
for i=1:9
subplot(3,3,i);
hold on
x = [4 13]; % from your example
y = ([1 1]); % from your example
y2 = ([-0.4 -0.4]);
H=area(x,y,'LineStyle','none',...
'FaceColor',[1 0.949019610881805 0.866666674613953]);
H1=area(x,y2,'LineStyle','none',...
'FaceColor',[1 0.949019610881805 0.866666674613953]);
% Create textbox
annotation('textbox',...
[0.719849840255583 0.603626943005185 0.176316293929713 0.308290155440411],...
'String',{'FABLIGHT04','Channel',i},...
'FontWeight','bold',...
'FontSize',10,...
'FontName','Geneva',...
'FitBoxToText','off',...
'EdgeColor','none');
axis([0 24 -0.4 1])
set(gca,'XTick',[0:1:24])
set(gca,'YTick',[-0.4:0.2:1])
xlabel('Time (s)');
end
Первоначально это давало мне 9 разных фигур, и аннотация работала нормально. Но я хотел, чтобы их можно было наклеить на подзаголовок для более простого сравнения.
Поскольку я переключился на использование подзаголовка, он не будет правильно аннотировать мою фигуру. Открыв редактирующую док-станцию и создав код, я обнаружил, что Matlab сначала рисует все, а затем просто помещает аннотации в один и тот же рисунок, один поверх другого. Глядя на код, она породила, она, видимо, принимает эту часть кода:
annotation('textbox',...
[0.719849840255583 0.603626943005185 0.176316293929713 0.308290155440411],...
'String',{'FABLIGHT04','Channel',i},...
'FontWeight','bold',...
'FontSize',10,...
'FontName','Geneva',...
'FitBoxToText','off',...
'EdgeColor','none');
и делает это, как:
annotation(figure1,'textbox'...)
etc etc
Так что для всех 9 текстовых полей, он ставит их на том же рисунке. Я попытался сделать S=subplot(3,3,i)
, затем annotation(S,'textbox') etc etc
, я также пробовал S(i)=subplot(3,3,i)
, а затем annotation(S,'textbox') etc etc
, но ничего не работает.
Я также попытался изменить расположение коробки. Я не могу понять, как уменьшить его.
Кто-нибудь знает, как иметь аннотации в правом подзаголовке в цикле for?
Благодаря
можете ли вы разместить небольшой набор данных, который мы можем использовать для воспроизведения ошибки? Благодаря! –
Привет, Я изменил код сейчас, так что вам не нужен файл, который я использовал. Поэтому вы должны иметь возможность воспроизвести ошибку сейчас. Спасибо –