У меня проблема (mathematica 8.0.1.0-), которую я не могу решить самостоятельно.У меня есть данные измерений в матрице, я хочу выбрать некоторые из них, а затем сложить их.
Чтобы лучше объяснить мою проблему, приведу простой пример.Данные могут быть получены с помощью матрицы S:
S = Table[ -Sin[i/2] - Sin[j/2], {i,20}, {j,20}];
Они могут быть красиво нанесены с помощью:
xmin = N[Min[S]];
xmax = N[Max[S]];
mycolorfun = Function[ Blend[{Blue,Cyan,Green,Yellow,Red},#] ];
и
MatrixPlot[S, PlotRange -> {All,All,All}, AspectRatio -> 1/1,
ColorFunction -> (mycolorfun[ Rescale[ #1{xmin,xmax} ] ]&),
ColorFunctionScaling -> False, MaxPlotPoints -> Automatic,
FrameLabel -> {y,x} ]
Тогда нужно получитькартинка, подобная этой:
Теперь я хочу выбрать данные, которые находятся внутри коричневого нарисованного многоугольника.Эти данные должны быть добавлены в конце.
Как я могу это сделать?Хорошо, я мог бы использовать прямоугольники и построить подматрицу, выбрав / угадав хорошие начальные и конечные индексы.Тогда мне просто нужно построить сумму этой подматрицы.Но я бы предпочел многоугольники (точнее, если мы не будем спорить о небольших проблемах со значениями матрицы, которые пересекаются линией многоугольника).И мне бы очень понравилось, если бы я мог выбрать свою область интересов (ROI) напрямую, «нарисовав» многоугольник в матрице (больше не тратя времени на выбор / угадывание индексов матрицы).
Может ли кто-нибудь здесь помочь мне с моей проблемой?Если это не решаемо с mathematica, есть ли какая-нибудь другая программа, которую я мог бы использовать?
Я был бы очень рад некоторой помощи и подсказкам!