2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 [matlab] Как построить 2 графика на одном рисунке?
Сообщение08.06.2013, 17:46 


08/06/13
4
Здравствуйте!

У меня код есть могу построить первый график сначала, а потом заменить данные и построить второй график. Но отдельно хочу построить их вместе на одном рисунке как построить второй в конце есть Коментарии (у умножение строка 26 и 62 на 2 и изменение в 10 )

код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
Talone=[1.5     2 2 2 2 2 2 2.5 2.5     2.5     2.5     2.5     2.5     2.5     2.5     2.5     3 3     3 3     3 3     3 3     3 3     3.5     3.5     3.5     3.5     3.5     3.5     3.5     3.5     3.5     4 4     4 4     4 4     4.5     4.5     4.5     4.5     5 5 5.5 5.5 6];
Talone=Talone*1000;
Tmin_fix=0.9*1000;
Tmin_min=0.6*1000;
Tmin_max=1.2*1000;
shagTmin=0.1*1000;
kolShagT=(Tmin_max-Tmin_min)/shagTmin+1;
C=((1/S)*sum(1./Talone))^(-1);
A=1500;
Ro=A/(2*C);
maxM=10;
minM=4;
mFix=5;
m_plot=zeros(1,(maxM-minM)+1);
p_plot=zeros(1,(maxM-minM)+1);
for countM=1 : 1 : (maxM-minM)+1;
m=countM+minM-1;
m_plot(countM)=m;
t=Talone./m;
Pr1=(Ro^m)*(1-Ro);
Em=Ro/(1-Ro);
Pr2=(m*Pr1)/Em;
T=((1-Ro)/S)*sum(Talone);
Tmin=Tmin_fix;
k=(Talone)./Tmin;
k1=floor(k);
a=zeros(1,length(k1));
a1=zeros(1,length(k1));
for j = 1 : 1: S;
if k1(j)>=m
    a(j)=(m*(Ro)^(m-1))*(1-Ro)^2;
else
    continue;
end;
if j>1
    if k1(j)~=k1(j-1)
        a1(j)=sum(a);
    else
        a1(j)=a1(j-1);
    end;
else
    a1(1)=a(1);
end;
end;
Pr1Tmin=sum(a1)/S;
p_plot(countM)=Pr1Tmin;
end;
plot(m_plot,p_plot);
pause;
t_plot=zeros(1,kolShagT);
p_plot=zeros(1,kolShagT);
for countT=1 : 1 : kolShagT;
m=mFix;
t=Talone./m;
Pr1=(Ro^m)*(1-Ro);
Em=Ro/(1-Ro);
Pr2=(m*Pr1)/Em;
T=((1-Ro)/S)*sum(Talone);
Tmin=Tmin_min+(countT-1)*shagTmin;
t_plot(countT)=Tmin;
k=(Talone)./Tmin;
k1=floor(k);
a=zeros(1,length(k1));
a1=zeros(1,length(k1));
for j = 1 : 1: S;
if k1(j)>=m
    a(j)=(m*(Ro)^(m-1))*(1-Ro)^2;
else
    continue;
end;
if j>1
    if k1(j)~=k1(j-1)
        a1(j)=sum(a);
    else
        a1(j)=a1(j-1);
    end;
else
    a1(1)=a(1);
end;
end;
Pr1Tmin=sum(a1)/S;
p_plot(countT)=Pr1Tmin;
end;
plot(t_plot,p_plot);
grid on
 

 Профиль  
                  
 
 Re: [matlab] Как построить 2 графика на одном рисунке?
Сообщение08.06.2013, 23:07 


13/06/11
22
Думаю, это то, что Вам надо:
Exponenta.ru писал(а):
SUBPLOT
Синтаксис:
subplot(m, n, p)
subplot(h)
subplot(mnp)
Описание:
Данная команда выполняется перед обращением к функциям построения графиков для одновременной выдачи нескольких графиков в различных частях графического окна.
Команды subplot(mnp) или subplot(m, n, p), где mnp - 3 цифры, производит разбивку графического окна на несколько подокон, создавая при этом новые объекты axes; значение m указывает, на сколько частей разбивается окно по горизонтали, n - по вертикали, а p - номер подокна, куда будет выводиться очередной график. Эти же команды могут использоваться для перехода от одного подокна к другому.
Команда subplot(h), где h - дескриптор для объекта axes соответствующего подокна, - другой способ выбора подокна для размещения графика.
Команды clf, subplot(111), subplot(1, 1, 1) выполняют одну и ту же функцию - удаляют все подокна и возвращают графическое окно в штатное состояние.
Пример:
В верхней части экрана строится функция y1 = sin(x), в нижней - y2 = log(abs(y)).
x = -1:.1:1;
y1 = sin(x);
subplot(2, 1, 1), plot(x, y1)
y2 = log(abs(y1));
subplot(2, 1, 2), plot(x, y2)

 Профиль  
                  
 
 Re: [matlab] Как построить 2 графика на одном рисунке?
Сообщение08.06.2013, 23:16 


08/06/13
4
Спасибо
я знаю такие команды но видите у меня сложный код не так просто
не знаю как надо делать

если вы знаете помогите пожалуйста
очень важно

 Профиль  
                  
 
 Re: [matlab] Как построить 2 графика на одном рисунке?
Сообщение09.06.2013, 00:32 


13/06/11
22
ysra в сообщении #734499 писал(а):
Спасибо
я знаю такие команды но видите у меня сложный код не так просто
не знаю как надо делать

если вы знаете помогите пожалуйста
очень важно


Эм, а чем "сложный" код мешает-то?


Замените вот эти части:
Используется синтаксис Matlab M
...
Pr1Tmin=sum(a1)/S;
p_plot(countM)=Pr1Tmin;
end;
plot(m_plot,p_plot);
pause;
t_plot=zeros(1,kolShagT);
...
p_plot(countT)=Pr1Tmin;
end;
plot(t_plot,p_plot);
grid on
 


На эти:
Используется синтаксис Matlab M
...
Pr1Tmin=sum(a1)/S;
p_plot(countM)=Pr1Tmin;
end;
subplot(2,1,1), plot(m_plot,p_plot);
t_plot=zeros(1,kolShagT);
...
p_plot(countT)=Pr1Tmin;
end;
subplot(2,1,2), plot(t_plot,p_plot);
grid on
 


П.С. В коде, который вы предоставили, константа S не определена.

 Профиль  
                  
 
 Re: [matlab] Как построить 2 графика на одном рисунке?
Сообщение09.06.2013, 00:53 


08/06/13
4
Спасибо Вам
но все равно отделано построили
мне надо на одном рисунке чтобы сравнить их
допустим первый график вместе с второй на втором окно

помогите пожалуйста

 Профиль  
                  
 
 Re: [matlab] Как построить 2 графика на одном рисунке?
Сообщение09.06.2013, 12:19 
Заслуженный участник


11/05/08
32166
plot(...)
hold on
plot(...)
hold off

Ну или просто

plot(x1,y1, x2,y2)

Или я вообще не понимаю, о чём речь.

 Профиль  
                  
 
 Re: [matlab] Как построить 2 графика на одном рисунке?
Сообщение15.01.2014, 15:28 


15/01/14
1
ewert, у меня был аналогичный вопрос. Спасибо вам огромное! Это ровно то, что я хотел узнать! Весь интернет облазил - ничего не нашёл. Ведь как это сформулировать-то? hold on / hold off :D Как всё просто!

 Профиль  
                  
 
 Re: [matlab] Как построить 2 графика на одном рисунке?
Сообщение15.01.2014, 15:40 


05/09/12
2587
Насколько я помню, для этого достаточно было посмотреть в хелп Матлаба раздел Геттинг стартед, самое начало, и не лазить в поисках по всему интернету.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group