【发布时间】:2019-11-23 21:06:03
【问题描述】:
我开始处理大量数据(来自用神经元培养的多电极阵列),这些数据太大而无法放入 RAM。于是我开始用高桌子,但性能很差。
目前我的工作流程是使用datastore加载.csv文件,然后使用tall存储。
不幸的是,当我想用gather将特定数据加载到RAM中时,速度很慢;我想我需要一整周的时间来分析一个实验。
% get the file as tall table:
ds = datastore(fullfile(filepath,filename));
data = tall(ds);
% here is the bottleneck:
temp = data((i-1)*interval+2:interval*i+1,el); % specify one data column
tempTab = gather(temp);
我读到与 MATLAB 中的矩阵相比,表的性能很差,所以我想知道是否有可能从数据存储中获取数据作为 tall 数组而不是 tall 表?
【问题讨论】:
-
您可以通过使用右侧列的名称来访问您的列:
mycol = data.YourColumnName。mycol将是一个 tall 数组。 -
谢谢!这是一个很好的提示!问题是我想对我的数据应用巴特沃斯过滤器。这里在每列中存储一个电极的电压值。通过 .varname 进行分配很棒,但很难通过近 400 列。但它让我找到了一个可行的解决方案(见答案)
标签: matlab performance csv