Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
АнастасияПочему
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 6
1

Повторный запуск программы с функцией plotyy

04.10.2016, 17:19. Просмотров 316. Ответов 10
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста. Вот часть моей программы:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pd2=P2(1,1:razm);
pd3=P3(1,1:razm);
[h1,h2,h3]=plotyy(t,i_k,t,qN);
set(h1(1),'ytick',0:5:30,'yLim',[0 30]);
set(h1(2),'ytick',0:20:100,'yLim',[0 130]);
   grid on;
   hold on 
axes(h1(1)) 
   grid on;
   hold on 
h5=plot(t,u);
  grid on;
  hold on 
h7=plot(t,pd2);
  grid on;
  hold on 
h8=plot(t,pd3);
axes(h1(2)) 
   grid on;
   hold on 
h6=plot(t,q1);
Когда я запускаю программу первый раз, всё хорошо. А при повторном, на графике всё путается. И график с левой оси строится на правой оси.
0
Миниатюры
Повторный запуск программы с функцией plotyy   Повторный запуск программы с функцией plotyy  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2016, 17:19
Ответы с готовыми решениями:

plotyy
Помогите сделать графики с помощью функции plotyy чет делаю у меня фигня какая то получается ...

Plotyy - искажен график
код: figure; = plotyy(X/max(X),P,X/max(X),T,@semilogy); set(hLineT,'LineWidth', 4)...

Координатная сетка для функции plotyy
пытаюсь на примере разобраться: x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 =...

Запрет на повторный запуск программы
Ничего, работающего на wpf, не нашел. Ну не считая использования мьютекса, где-то в каком-то...

Предотвратить повторный запуск программы
Приветствую Возникла проблема: Если запустить program.exe ещё раз (когда один экземпляр уже...

10
Krasme
3805 / 2986 / 1109
Регистрация: 02.02.2014
Сообщений: 8,083
04.10.2016, 17:38 2
стирать график надо... в начале кода, или перед функций plotyy
Matlab M
1
clf;
1
АнастасияПочему
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 6
05.10.2016, 06:38  [ТС] 3
В обычной программе это действительно помогает, а в GUI не может использоваться((( Тогда всё выходит пустым...
0
SSC
Эксперт по математике/физике
3122 / 1522 / 461
Регистрация: 09.04.2015
Сообщений: 4,229
05.10.2016, 07:33 4
Попробуй после вывода последнего графика выключить "заморозку"
Matlab M
1
hold off
1
05.10.2016, 07:33
АнастасияПочему
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 6
05.10.2016, 13:08  [ТС] 5
Спасибо! Выход конечно, но тогда он смещается. Можно конечно первоначальный график на середину поставить, но есть ещё какой-нибудь выход?
0
Миниатюры
Повторный запуск программы с функцией plotyy  
АнастасияПочему
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 6
05.10.2016, 13:20  [ТС] 6
SSC, Вы это имели ввиду?
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[h1,h2,h3]=plotyy(t,i_k,t,qN);
set(h1(1),'ytick',0:5:30,'yLim',[0 30]);
set(h1(2),'ytick',0:20:100,'yLim',[0 130]);
   grid on;
   hold on 
axes(h1(1)) 
   grid on;
   hold on 
h5=plot(t,u);
  grid on;
  hold on 
  h7=plot(t,pd2);
  grid on;
  hold on 
h8=plot(t,pd3);
axes(h1(2)) 
   grid on;
   hold on 
h6=plot(t,q1);
  grid on;
  hold off 
legend('qN','q1','i','u','P2','P3');
set(h2,'LineWidth',2);
set(h3,'LineWidth',2,'LineStyle',':');
set(h5,'LineWidth',2,'LineStyle','--');
set(h6,'LineWidth',2);
set(h7,'LineWidth',2,'LineStyle','-.');
set(h8,'LineWidth',2,'LineStyle','--');
0
SSC
Эксперт по математике/физике
3122 / 1522 / 461
Регистрация: 09.04.2015
Сообщений: 4,229
05.10.2016, 14:14 7
Цитата Сообщение от АнастасияПочему Посмотреть сообщение
SSC, Вы это имели ввиду?
Извините я несколько не увидел проблему полностью. В нелпах и примерах, да и сам пробуя разные варианты не получал успешных результатов по построению более 2-х графиков в plotyy (в таком вольном подходе как и Вы делаете).
Однако есть работающий пример построения 3-х графиков (а следовательно можно и больше), но как управлять в этом случае свойствами линий графика надо разбираться.
Matlab M
1
2
3
4
5
6
7
8
9
x = linspace(0,10);
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
y3 = 0.2*exp(-0.5*x).*sin(10*x);
y4 = 150*exp(-0.6*x).*sin(4*x);
 
figure
%[hAx,hLine1,hLine2] = plotyy(x,y1,[x',x'],[y2',y3']);
[hAx,hLine1,hLine2] = plotyy([x',x'],[y1',y4'],[x',x'],[y2',y3']);
Добавлено через 4 минуты
Посмотрите еще вот такой пример по ссылке, но у меня на версии 2012b он не работает
https://www.mathworks.com/help/matla...wo-y-axes.html
0
АнастасияПочему
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 6
05.10.2016, 14:18  [ТС] 8
SSC, Спасибо! Получилось!!
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[COLOR="Red"]axes(handles.axes1);
cla;[/COLOR]
[h1,h2,h3]=plotyy(t,i_k,t,qN);
set(h1(1),'ytick',0:5:30,'yLim',[0 30]);
set(h1(2),'ytick',0:20:100,'yLim',[0 130]);
   grid on;
   hold on 
axes(h1(1)) 
   grid on;
   hold on 
h5=plot(t,u);
  grid on;
  hold on 
h7=plot(t,pd2);
  grid on;
  hold on 
h8=plot(t,pd3);
axes(h1(2)) 
   grid on;
   hold on 
h6=plot(t,q1);
[COLOR="red"]  hold off [/COLOR]
legend('qN','q1','i','u','P2','P3');
set(h2,'LineWidth',2);
set(h3,'LineWidth',2,'LineStyle',':');
set(h5,'LineWidth',2,'LineStyle','--');
set(h6,'LineWidth',2);
set(h7,'LineWidth',2,'LineStyle','-.');
set(h8,'LineWidth',2,'LineStyle','--');
0
SSC
Эксперт по математике/физике
3122 / 1522 / 461
Регистрация: 09.04.2015
Сообщений: 4,229
05.10.2016, 14:39 9
АнастасияПочему, и Вам спасибо за последний пример, я тоже увидел в нем некоторые вещи которые не знал.
В вашем коде несколько избыточны команды grid on; и hold on; аккуратно попробуйте уменьшить их количество.
hold on; должно быть достаточно первого.
1
АнастасияПочему
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 6
06.10.2016, 10:20  [ТС] 10
Когда строю графики второй раз, старые оси остаются(( Может кто-то сталкивался с такой проблемой...
0
Миниатюры
Повторный запуск программы с функцией plotyy  
SSC
Эксперт по математике/физике
3122 / 1522 / 461
Регистрация: 09.04.2015
Сообщений: 4,229
06.10.2016, 11:06 11
Вместо cla; поставте
Matlab M
1
cla reset;
1
06.10.2016, 11:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2016, 11:06

Как запретить повторный запуск программы
При загрузке формы запретить запуск этой формы еще раз , допустим что бы выводило "Это программа...

Повторный запуск main() равен перезапуску программы?
Добрый день. Если в коде какой либо функции я вызову main() c которой у меня начинается выполнение...

Повторный запуск
На работе создал скрипт-программу backup.ps1 которая бекапит базу пользователей каждые 30 минут,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru