我遇到了(自己无法解决的)(mathematica 8.0.1.0-)问题。 我有一个矩阵的测量数据,我想选择其中的一些,然后将其添加。在矩阵中感兴趣的区域中选择数据(使用Mathematica)
为了更好地解释我的问题,这里有一个简单的例子。该数据可以由矩阵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解决,是否还有其他一些我可以使用的程序?
我会很高兴的一些帮助和提示!
需要注意的一点是,代码块需要在它们之前有一个空行,所以我为您解决了这个问题。我还将代码重新格式化了一些,并隐藏了可点击文本背后的链接以提高可读性。 – rcollyer
感谢您编辑我的问题!由于我在这里是新手,所以在编辑时遇到了一些问题。我下次尝试做得更好。 – partial81
没问题。你在这里的新事物,并列出你的问题/答案需要练习。 – rcollyer