我正在尝试使用Node.js(使用本机MongoDB驱动程序)在MongoDB中设置和更新一些上限集合.我的目标是,在运行app.js时,将文档插入到上限集合中,并更新上限集合中的现有文档.这两个都在运行setInterval(),所以每隔几秒钟.
我的问题:
db.createCollection("collectionName", { capped : true, size : 100000, max : 5000 } ).这将为我创建上限集合,但每次调用它时都会调用createCollection()而不是更新或插入 - 如果我调用createCollection(),一旦集合已经存在,它是否会完全覆盖现有集合?db.runCommand({"convertToCapped": "collectionName", size: 100000, max : 5000 });.这个问题是节点看不到runCommand()有效的函数而且它有错误.是否有其他东西我打算要求它让这个工作?它适用于mongo cli但不在节点内db.collections.find()一些查询,但在节点内它表明它find()不是有效的函数collection.update()向现有文档添加一些新字段?让我们说文档是一些简单的对象,{key1: "value", key2: "value"}但我有一个包含的对象{key3: "value"}.当前文档中不存在键3,如何将其添加到当前存在的内容中?这与上面的#4有些相关,因为我不确定要传递什么,因为查询参数find()似乎不能很好地与节点一起使用.我有以 3D numpy 数组(纪元 * 通道 * 时间点)形式出现的 EEG 数据。时间点是一个包含每个采样时间点的 256 个元素数组(总共 1 秒,频率为 256Hz)。epoch 是一个实验性的试验。
我正在尝试将 numpy 数组导入 Python-MNE ( http://martinos.org/mne/stable/mne-python.html ) 理解的表单中,但我遇到了一些麻烦
首先,我不确定是否应该将这些原始数据作为 RawArray 或 EpochsArray 导入。我用这个尝试了后者:
ch_names = list containing my 64 eeg channel names
allData = 3d numpy array as described above
info = mne.create_info(ch_names, 256, ch_types='eeg')
event_id = 1
#I got this from a tutorial but really unsure what it does and I think this may be the problem
events = np.array([200, event_id]) #I got …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的问题,当我卸载应用程序时,我的SQL数据库不会自行删除
我不是在任何外部存储目录中创建数据库,并且确认数据库位于其默认位置: /data/data/com.example.app/databases/
卸载应用程序后,我希望擦除该位置的所有数据,但是当我从android studio再次运行应用程序时,新安装仍然可以看到所有旧数据
我已经尝试使用adb手动删除.db数据库目录中的文件,但是当我再次运行应用程序时,仍然可以看到旧数据
我也尝试进入应用程序设置并清除数据和缓存,但这似乎没有帮助
在我的代码中,我对数据库做任何"奇怪"事情的唯一地方是我在按钮点击时将数据库文件复制到新位置:
String pathToExternalStorage = Environment.getExternalStorageDirectory().toString();
File exportDir = new File(pathToExternalStorage, "/SensorData");
File subjectDataDir = new File(exportDir, "/subjects");
File data = Environment.getDataDirectory();
String currentDBPath = "//data//com.example.app//databases//" + DBHelper.DATABASE_NAME;
File currentDB = new File(data, currentDBPath);
File destDB = new File(exportDir, DBHelper.DATABASE_NAME);
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(destDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Run Code Online (Sandbox Code Playgroud)
然后在新创建的文件上运行mediascanner,以便我可以立即获得MTP访问权限
我怀疑这些过程中的任何一个都可能导致这种情况发生吗?
我当前的问题是如何在没有root访问权限的情况下从手机中手动删除数据库?
更大的问题是什么可能导致卸载过程不删除数据库文件?新安装的应用程序版本(卸载后)如何仍然可以看到旧的数据库信息?
我不知道如何开始搞清楚这一点......
编辑:
这变得越来越陌生.这似乎只发生在Windows上.这是我尝试过的过程:
所以我现在真的很茫然.为什么在Mac上运行会好吗?为什么在Mac上运行并清理数据库后,再次带上旧的Windows数据库呢?这不是所有操作系统都独立吗?
database sqlite android android-sqlite android-external-storage
我想知道两种不同的启动可运行方法的性能和 cpu/ram 要求
我有一些代码每 10 毫秒收集一次传感器数据,并将这些值插入到后台线程上的数据库中(使用单线程执行器)。Executor服务创建如下:
executor = Executors.newSingleThreadExecutor();
一种方法是......
public void onSensorChanged(SensorEvent event) {
//get sensor values
//insert into database
executor.execute(new Runnable(){
//database insert code here
});
}
Run Code Online (Sandbox Code Playgroud)
我在教程中经常看到这种方法,但因为我每 10 毫秒执行一次,所以感觉资源密集型,因为每次检测到传感器值变化时我都会创建一个新对象。这个新对象是否每 10 毫秒就被覆盖一次?或者随着新对象的创建,它是否会占用越来越多的 RAM?
此后我重构了我的代码,使其看起来更像这样:
executor = Executors.newSingleThreadExecutor();
myRunnable = new MyRunnable();
class MyRunnable implements Runnable {
public void run() {
//database insert code here
}
}
public void onSensorChanged(SensorEvent event) {
//get sensor values
//insert into database
executor.execute(myRunnable);
}
Run Code Online (Sandbox Code Playgroud)
我的想法是,我只实例化一个对象一次,而不是每次传感器发生变化时都实例化一次。我认为这比以前的方法具有更低的 RAM 使用率,这是正确的吗?有没有更有效/更好的方法来完成这项任务?
可以说我在R中有以下字符串:
text <- "[Peanut M&M\u0092s]"
我一直在尝试使用正则表达式通过搜索和删除来消除撇号\u0092:
replaced <- gsub("\\\\u0092", "", text )
但是,以上方法似乎无效,并且结果与原始结果相同。进行此删除的正确方法是什么?
此外,如果我想删除打开和关闭[],那么一次完成所有任务还是在单独的一行中执行所有操作是否更有效率?
我的网站上有一个表单,用户可以在该表单中输入一个数字subNum.当用户提交表单时,我想检查他们输入的值是否已作为任何现有文档中的值存在.这都是在javascript/meteor中完成的
所有表单数据都放入这样的对象:
participantObject = {
subNum: parseInt(number)
}
Run Code Online (Sandbox Code Playgroud)
然后,此对象作为文档插入到Participants集合中
单击提交按钮时,我需要检查他们输入的数字是否已经输入(即作为subNum任何文档中的值存在).如果是这样,请阻止表单提交并显示错误
我正在尝试这样的检查:
var existingSubs = Participants.find(
{subNum: {$eq: participantObject.subNum}}
).count();
console.log(existingSubs);
Run Code Online (Sandbox Code Playgroud)
我希望上面会找到我所有的文件,其中subNum等于输入的值(participantObject.subNum),并且控制台记录匹配文件的数量
问题是在控制台日志中我看到了 Unrecognized operator: $eq
我是否错误地使用了相等运算符?
有没有更有效的方法来执行这样的检查?
我正在尝试创建一个散点图,其中点是抖动的(geom_jitter),但我还想在每个点周围创建一个黑色轮廓.目前我正在通过添加2个geom_jitters来实现它,一个用于填充,一个用于轮廓:
beta <- paste("beta == ", "0.15")
ggplot(aes(x=xVar, y = yVar), data = data) +
geom_jitter(size=3, alpha=0.6, colour=my.cols[2]) +
theme_bw() +
geom_abline(intercept = 0.0, slope = 0.145950, size=1) +
geom_vline(xintercept = 0, linetype = "dashed") +
annotate("text", x = 2.5, y = 0.2, label=beta, parse=TRUE, size=5)+
xlim(-1.5,4) +
ylim(-2,2)+
geom_jitter(shape = 1,size = 3,colour = "black")
Run Code Online (Sandbox Code Playgroud)
但是,这导致类似这样的事情:
由于抖动随机偏移数据,因此2个geom_jitters彼此不一致.如何确保轮廓与填充点位于同一位置?
我已经看到了相关的线程(例如,是否有可能以相同的方式抖动两个ggplot geom?),但它们已经很老了,并且不确定是否有任何新内容添加到ggplot中可以解决这个问题
上面的代码可以使用,而不是使用geom_jitter,我使用常规geom_point,但我有太多的重叠点,这是有用的
编辑:
发布的答案中的解决方案有效.但是,对于我正在使用其他变量进行分类并使用它来绘制不同颜色的其他一些图形,它不太合作:
ggplot(aes(x=xVar, y = yVar, color=group), data = data) + …Run Code Online (Sandbox Code Playgroud) 我在同一个目录中有一堆文件,名称如下:
IMG_20160824_132614.jpg
IMG_20160824_132658.jpg
IMG_20160824_132738.jpg
中间部分是日期,最后部分是照片拍摄时间。因此,如果我按名称对这些文件进行排序,结果将与按修改的日期/时间排序相同
我想使用 bash 将这些文件批量重命名为以下形式:
1-x-3.jpg
其中x代表文件在顺序排序中的位置(按名称/修改时间排序)
因此,上面的 3 个示例将重命名为:
1-1-3.jpg
1-2-3.jpg
1-3-3.jpg
是否有可以实现此目的的 bash 命令?还是需要脚本?
我正在尝试在 python 中实现梯度下降,我的损失/成本随着每次迭代而不断增加。
我已经看到一些人发布了关于这个的帖子,并在这里看到了一个答案:使用 python 和 numpy 的梯度下降
我相信我的实现是相似的,但看不出我做错了什么来获得爆炸性的成本价值:
Iteration: 1 | Cost: 697361.660000
Iteration: 2 | Cost: 42325117406694536.000000
Iteration: 3 | Cost: 2582619233752172973298548736.000000
Iteration: 4 | Cost: 157587870187822131053636619678439702528.000000
Iteration: 5 | Cost: 9615794890267613993157742129590663647488278265856.000000
Run Code Online (Sandbox Code Playgroud)
我正在网上找到的数据集(洛杉矶心脏数据)上对此进行测试:http : //www.umass.edu/statdata/statdata/stat-corr.html
导入代码:
dataset = np.genfromtxt('heart.csv', delimiter=",")
x = dataset[:]
x = np.insert(x,0,1,axis=1) # Add 1's for bias
y = dataset[:,6]
y = np.reshape(y, (y.shape[0],1))
Run Code Online (Sandbox Code Playgroud)
梯度下降:
def gradientDescent(weights, X, Y, iterations = 1000, alpha = 0.01):
theta = weights
m = Y.shape[0]
cost_history …Run Code Online (Sandbox Code Playgroud) 我一直在尝试为python安装matlab引擎,所以我可以在我的python脚本中调用matlab函数.
我使用的指南就是这个:http://uk.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html
它说setup.py文件位于matlabroot\extern\engines\python中,但是,我的extern文件夹不包含引擎文件夹(仅示例,include,lib)
我在找错了地方吗?还是有另一种方法来安装它?我使用matlab 2012b和python 2.7,如果这有所作为
python ×3
android ×2
javascript ×2
mongodb ×2
numpy ×2
r ×2
bash ×1
batch-rename ×1
database ×1
file-rename ×1
ggplot2 ×1
gsub ×1
java ×1
matlab ×1
meteor ×1
mne-python ×1
native ×1
node.js ×1
regex ×1
regression ×1
rename ×1
runnable ×1
scatter-plot ×1
sqlite ×1
unicode ×1