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, Супермодераторы



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

Сейчас этот форум просматривают: sqribner48


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

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