Мне было интересно, знал ли кто-нибудь, как я мог бы окрасить область под кривой для кода ниже. Я попытался использовать area(Mu)
, однако это возвращает затененную область, немного отличающуюся от графика.Раскраска Ограниченная область под кривой Matlab
n=1;
a=[0:0.001:4];
A=(a.*n);
B=(n-n.*a);
C=(1-n);
Mu=(-B+sqrt((B.^2)-(4.*A.*C)))./(2.*A);
plot(a,Mu)
xlim([0 4])
ylim([0 .8])
Это прямолинейно ... Просто замените 'plot' на' area', который даст вам строку 'area (a, Mu)'. Это можно найти в [документации] (http://ch.mathworks.com/help/matlab/ref/area.html) следующим образом: «*' area (X, Y) 'Для векторов' X' и ' Y', 'area (X, Y)' совпадает с «plot (X, Y)», за исключением того, что заполняется область между '0' и' Y'. * – Matt
@Matt удаление вызова «plot» не правильный общий ответ, если пользователь хочет сделать что-то «особенное» с границей. ОП попытался «область», поэтому не похоже, что она не знает, что функция существует ... – excaza
@excaza Конечно, если OP нужен «сюжет», ей нужно вызвать «область» после «удержания» или сначала постройте участок, а затем линию. Она попробовала 'area (Mu)', но не 'area (a, Mu)' ... Вот почему я использовал слово * replace *, чтобы подчеркнуть, что аргументы точно такие же. Это также соответствует цитате. – Matt