小编par*_*l81的帖子

使用mathematica导入大文件/数组

我在Windows7 32位平台上使用mathematica 8.0.1.0.我尝试导入数据

Import[file,”Table”]
Run Code Online (Sandbox Code Playgroud)

只要文件(文件中的数组)足够小,它就可以正常工作.但是对于更大的文件(38MB)/阵列(9429乘2052),我得到的信息是:

No more memory available. Mathematica kernel has shut down. Try quitting other applications and then retry.
Run Code Online (Sandbox Code Playgroud)

在具有更多主内存的Windows7 64位平台上,我可以导入更大的文件,但我认为有一天,当文件增长/数组有更多行时,我会遇到同样的问题.

所以,我试图找到一个导入大文件的解决方案.在搜索了一段时间之后,我在这里看到了一个类似的问题:处理Wolfram Mathematica中的大数据文件的方法.但似乎我的mathematica知识不足以使建议的OpenRead,ReadList或类似的数据适应我的数据(参见这里的示例文件).问题是我需要文件中数组的其余程序信息,例如某些列和行中的Dimensions,Max/Min,我正在对某些列和每一行进行操作.但是当我使用例如ReadList时,我从来没有得到与我使用Import相同的数组信息(可能是因为我以错误的方式进行).

有人可以给我一些建议吗?我很感激每一个支持!

wolfram-mathematica

21
推荐指数
1
解决办法
7448
查看次数

在矩阵中选择感兴趣区域中的数据(使用Mathematica)

我有一个(mathematica 8.0.1.0-)问题,我自己无法解决.我有一个矩阵中的测量数据,我想选择其中的一些,然后将它们加起来.

为了更好地解释我的问题,这是一个简单的例子.数据可以由矩阵S产生:

S = Table[ -Sin[i/2] - Sin[j/2], {i,20}, {j,20}];
Run Code Online (Sandbox Code Playgroud)

它们可以很好地绘制:

xmin = N[Min[S]]; 
xmax = N[Max[S]]; 
mycolorfun = Function[ Blend[{Blue,Cyan,Green,Yellow,Red},#] ];
Run Code Online (Sandbox Code Playgroud)

MatrixPlot[S, PlotRange -> {All,All,All}, AspectRatio -> 1/1,
   ColorFunction -> (mycolorfun[ Rescale[ #1{xmin,xmax} ] ]&),
   ColorFunctionScaling -> False, MaxPlotPoints -> Automatic,
   FrameLabel -> {y,x} ]
Run Code Online (Sandbox Code Playgroud)

那么应该得到一张类似于这张的照片:

在此输入图像描述

现在我想选择棕色绘制多边形内部的数据.这些数据应该在最后加起来.

我怎样才能做到这一点?好吧,我可以使用矩形并通过选择/猜测好的开始和结束索引来构建子矩阵.然后我只需要构建这个子矩阵的总和.但我更喜欢多边形(如果我们不争论矩形值与多边形线交叉的小问题,则更为精确).如果我可以通过将多边形"绘制"到矩阵中来直接选择我感兴趣的区域(ROI),我会喜欢它(不再需要选择/猜测矩阵索引).
有人可以帮助我解决我的问题吗?如果使用mathematica无法解决,是否还有其他可以使用的程序?

我会很乐意提供一些帮助和提示!

wolfram-mathematica image-processing

8
推荐指数
3
解决办法
2407
查看次数

使用mathematica创建列表中的矩阵

我有一个问题,我尝试用mathematica解决.我有一个列表,其中包含来自位置测量的x和y坐标(以及在每个点测量的数量的z值).所以,我的列表以list = {{ - 762.369,109.998,0.915951},{ - 772.412,109.993,0.923894},{ - 777.39,109.998,0.918108},...}(x,y,z)开头.出于某些原因,我必须将所有这些x,y和z值填充到矩阵中.如果我为每个y坐标设置相同数量的x坐标(比方说80),那就很容易了,那么我可以使用Partition [list,80]生成一个包含80列的矩阵(以及一些给出数字的行)通过具有相同值的y坐标的数量).
不幸的是,它并不那么容易,每个y的x坐标数不是严格恒定的,从附加的ListPlot可以看出. xy与ListPlot坐标 任何人都可以给我一些建议,我怎样才能将这个图的每个点/我列表的每个xy-(和z-)坐标填充到一个矩阵中?

为了更好地解释我想要的东西,我在附图中指出了一个矩阵.可以看出,我的情节中的几乎每个点都会落入矩阵的单元格中,只有一些单元格会保持空白.我在图中使用的颜色为红色,其中x坐标在我的列表中上升,而蓝色则用于x坐标在我的列表中下降的点(位置沿曲折线测量).也许这种顺序可以解决问题... 这里有我的坐标的链接,也许这有帮助.

好吧,我希望我能够很好地解释我的问题.我非常感谢你的帮助!

wolfram-mathematica

3
推荐指数
1
解决办法
1270
查看次数