как добавить файл png в график Matlab

как добавить изображение на график, который я сделал в Matlab? картинка из википедии:

введите здесь описание изображения

И ниже приведен код, который я придумал для сюжета, который я сделал.

x= 7:0.1:27;
y= normpdf(x,17,exp(1));
title('Normal Distribution')
hold on
xlabel('x')
ylabel('y')
plot(x,y)

Я думаю, что сценарий, который мне нужно использовать, должен быть примерно таким, но он не работает. Любые идеи? спасибо

title('addition: $1+1=2$', 'interpreter', 'latex')

person d.a.j.    schedule 19.01.2015    source источник


Ответы (1)


Вы пытаетесь заставить само изображение отображаться в ваших осях? Или вы пытаетесь, чтобы уравнение на изображении отображалось на ваших осях в виде текста? Потому что для первого вам понадобится:

x= 7:0.1:27;
y= normpdf(x,17,exp(1));
title('Normal Distribution')
hold on
xlabel('x')
ylabel('y')
plot(x,y)

img = imread('http://upload.wikimedia.org/math/7/3/a/73ad15f79b11af99bd2477ff3ffc5a35.png');
img = cat(3, img, img, img);
img = max(img(:)) - img;
img(img == max(img(:))) = 255;
hold on
xRange = [21 29];
yRange = [0.13 0.1];
imgHandle = image(linspace(xRange(1), xRange(2), size(img, 1)), ...
    linspace(yRange(1), yRange(2), size(img, 2)), img, 'Parent', gca);
hold off

который считывает изображение с указанного URL-адреса, настраивает его так, чтобы оно отображалось как черный текст на белом, а затем добавляет его на ось как объект.

Если вместо этого вам просто нужен текст уравнения, что, я думаю, вам нужно, поскольку оно гораздо более элегантно, вы бы сделали это следующим образом:

x= 7:0.1:27;
y= normpdf(x,17,exp(1));
title('Normal Distribution')
hold on
xlabel('x')
ylabel('y')
plot(x,y)

text(19, .145, '$f(x, \mu, \sigma) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}}$', ...
    'interpreter', 'latex', 'FontSize', 14)
person Staus    schedule 19.01.2015
comment
да, вы правы, я пытался сделать это вторым способом. спасибо за помощь - выглядит отлично! - person d.a.j.; 20.01.2015
comment
еще один вопрос, если вы не возражаете, я пытаюсь добавить стандартное отклонение к графику, похоже, я должен использовать: s = std(X) s = std(X,flag) s = std(X ,flag,dim), но я не могу заставить ни один из них работать правильно. s=std(exp(1)) правильный синтаксис? Благодарю. - person d.a.j.; 21.01.2015
comment
Это правильный синтаксис, если вы хотите, чтобы s было единственным значением, равным 0. Было бы легче увидеть, где вы ошиблись, если бы вы предоставили код того, что вы сделали. - person Staus; 21.01.2015
comment
Как вы видите, я форсирую линии для среднего и стандартного отклонения, похоже, я должен быть в состоянии генерировать их более элегантно. х= 7:0,1:27; y= normpdf(x,17,exp(1)); title('Нормальное распределение') удерживайте xlabel('x') ylabel('y') plot(x,y) text(19, .145, '$f(x, \mu, \sigma) = \frac{ 1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}}$', ... 'интерпретатор' , 'латекс', 'Размер шрифта', 14) x=[17,17]; у=[0,.1465]; график (х, у) х = [14.22,14.22]; у=[0,087]; график (х, у) х = [19,78, 19,78]; у=[0,087]; график (х, у) - person d.a.j.; 21.01.2015