2016-11-02 5 views
-3

У меня есть два графика, один - точный график решения, другой - численный подход. У меня есть 4 конкретных пункта в моей фигуре (t = 0,25,0,5,0,75,1), где я хочу проиллюстрировать разницу между двумя графиками с прямой. Я нашел функцию errorbars, но я не вижу там никакого использования. Надеюсь, ты поможешь мне!Matlab - Разница между двумя графиками в определенных точках

Редактировать:

это пример фигуры:

t = [0:0.25:1]; 
y = t.*4; 
x = t.^2+3; 
plot(t,y,t,x) 

У меня 4 очка сейчас, т = 0,25; т = 0,5; т = 0,75; т = 1; В этот момент мне просто нужна вертикальная линия между двумя графиками. Я уже пробовал: plot([t(1),y(1)],[t(1),x(1)])

но он просто создает линию на всей фигуре.

+0

Вы знаете точки, между которыми вы хотите, чтобы нарисовать линию, то вы можете просто использовать 'plot'. –

+0

, но с сюжетом я получаю строку по всей фигуре, я хочу ее только между линиями – eTTPOx

+1

Затем [создайте минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve), который объясняет, что вы попытались и как это неправильно/не работает! –

ответ

0


кажется, что вы не используете hold on перед использованием plot команды во второй раз, потому что в противном случае вы бы получили желаемый результат (который на самом деле не является правильным способом построения вертикальной линии).

Вы путаете значения x и y для plot(x,y). Чтобы построить вертикальную линию, она должна использоваться так: plot([x,x], [y1,y2])
В вашем случае, вы можете не заметить разницу между plot([t(1),y(1)],[t(1),x(1)]) (что неверно) и plot([t(1),t(1)],[x(1),y(1)]) (что правильно), потому что это случайно, что значения одинаковы. Представьте это для некоторых других пунктов, и вы поймете разницу.

Фиксированный Код:

t = [0:0.25:1]; 
y = t.*4; 
x = t.^2+3; 
plot(t,y,t,x) 
hold on 
plot([t(1) t(1)],[x(1) y(1)]) 
% You have 't' on your horizontal axis and 'x'and 'y' values on the vertical axis 
axis equal  % just for better visualization 

Выход:

output

Смежные вопросы