我对PostgreSQL很新,并且花了太多时间试图找到一个适应我想做的事情的例子.所以我希望我能在这里得到一些帮助
我有2张桌子,称他们为人和地址
我想创建一个触发器,当我在person_id = oid的第一个表中为person_id插入新值时,从表地址复制street和house_nr
表人
person_id
street
house_nr
other_attributes表地址
oid
street
house_nr
other_attributes
像这样的东西
INSERT INTO person
set person.street = address.street,
person.house_nr = address.house_nr
FROM address
WHERE person_id = oid
Run Code Online (Sandbox Code Playgroud)
希望有人有时间帮助欢呼
我需要为JavaScript项目生成文档,我想用Javadoc来做.
不可思议的是,我必须在Visual Studio 2013上完成它,看起来没有什么可以帮助Javadoc注释块.我想至少在我这样做时:
/**+ enter生成:
/**
*
*/
Run Code Online (Sandbox Code Playgroud)
我在Stackoverflow和微软网站上寻找过插件或类似的问题,但我只找到了Doxygen的插件或解决方案.
我是否真的在寻找一些不存在的东西,或者是否有一些我错过的东西?(希望如此)
我想模糊矩阵中的值,以便在相邻元素中我们不会有明显的过渡.
从维基百科页面Gaussian Blur我发现了一些关于高斯模糊的信息.我用最简单的算法尝试过,因此运行时间太长.坦率地说,我不确定我的实现是否正确,因为在边界瓦片上仍然存在明显的过渡.
我注意到这种模糊可以通过离散傅立叶变换来完成,这种变换要快得多,但我无法弄明白.
所以,我们的想法是,我们可以使用以下公式获得模糊矩阵:
blurredMatrix = IFFT[FFT[initialMatrix]FFT[weightingFunction]]
Run Code Online (Sandbox Code Playgroud)
其中FFT/IFFT是快速傅里叶变换/逆快速傅立叶变换.
目前我正在尝试对Wolfram Mathematica进行一些测试,以确保这种傅里叶变换的近似是正确的.
我正在使用GaussianMatrixweightingFunction.
我需要2d模糊,所以我创建了如下的高斯矩阵:
假设我们的初始矩阵具有nxn大小,其中n = 2k + 1
G = Chop[GaussianMatrix[k] GaussianMatrix[k], 10^6]
Run Code Online (Sandbox Code Playgroud)
然后,我尝试创建blurMatrix,如下所示:
blurredMatrix = Chop[FourierDCT[(FourierDCT[G]) (FourierDCT[initialMatrix]), 3], 10^-6]
Run Code Online (Sandbox Code Playgroud)
但结果我得到了零.
似乎我做错了.
另外,我尝试了另一种方法:
f[xi_, yj_] := 1/(2 \[Pi] \[Sigma]^2) Exp[-(((xi^2) + (yj^2) )/(2 \[Sigma]^2))];<br/>
[Sigma] = 3;<br/>
G = Chop[N[Table[f[i, j], {i, 1, 100}, {j, 1, 100}]]]; <br/>
Tavg = Chop[ 1000 InverseFourier[(Fourier[G]) (Fourier[T]) ], 10^-6]; <br/>
Run Code Online (Sandbox Code Playgroud)
使用这种方法,图像看起来很好(图像模糊),但blurMatrix和initialMatrix的值之间存在很大差异.
似乎有一些正常化或其他问题.
我需要用C/C++编写代码,C中有一个库FFTW库,它支持离散傅里叶变换.
如果这是一种错误的模糊方式,请告诉我,还有其他可能做我想做的事情.
我有两个数组,一个数据和一个索引:
var data = [
'h', 'e', 'l', 'l', 'o', ' '
];
var indices = [
4, 0, 5, 0, 1, 2, 2
];
Run Code Online (Sandbox Code Playgroud)
我想创建一个第三个数组,使用data按顺序指示的单元格indices,所以它在这里:
['o', 'h', ' ', 'h', 'e', 'l', 'l']
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过简单的循环轻松完成:
var newArray = new Array(indices.length);
for (var i in indices) {
var index = indices[i];
newArray.push(data[index]);
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一种更简洁的方法,比如数组方法或特殊的构造函数?
如何通过Kibana查询ElasticSearch以选择具有字段X的项目?
例如,我有一个带字段的映射{"a": {"type": "string"}, "b": {"type": "string"}}和两个文档
{"a": "lalala"}
{"a": "enoheo", "b": "nthtnhnt"}
Run Code Online (Sandbox Code Playgroud)
我想在不知道它b实际是什么的情况下找到第二个文档.
我最近看到一段C代码,包括以下样式的宏:
#define TOTO() \
do { \
do_something(); \
do_another_something(); \
} while (0)
Run Code Online (Sandbox Code Playgroud)
我起初想知道do while (0)这里的目的,但是这个答案向我解释:如果宏只是在一个if或else没有花括号之后使用,就像这样:
if (something)
TOTO();
else
do_something_else();
Run Code Online (Sandbox Code Playgroud)
所以这里没有do while (0)语句,代码将扩展为:
if (something)
do_something();
do_another_something();
else
do_something_else();
Run Code Online (Sandbox Code Playgroud)
这在语法上是错误的,因为else它不再直接跟随if范围.
但是我认为它可以通过在自己的范围内声明宏来实现,而不必do while围绕它,所以我用大括号测试了相同的代码.我的整个代码如下所示:
#include <stdio.h>
#define HELLO_WORLD() \
{ \
printf("hello "); \
printf("world!\n"); \
}
int main(int argc, char** argv)
{
if (argc == 1)
HELLO_WORLD();
else
fprintf(stderr, "nope\n");
return 0;
} …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
#include <iostream>
using namespace std;
class Base
{
public:
virtual void Sub1() = 0;
virtual void Sub2();
virtual void Sub3();
void Sub4();
};
class A : public Base
{
public:
void Sub2();
void Sub4();
};
class B : public A
{
public:
virtual void Sub1();
void Sub2();
};
class C : public Base
{
public:
virtual void Sub1();
virtual void Sub4();
};
void Base::Sub2()
{
cout << "Hello from Base::Sub2()" << endl;
}
void Base::Sub3()
{
cout << "Hello …Run Code Online (Sandbox Code Playgroud) 我有一个std :: map将const char*键与int值相关联:
std::map<const char*, int> myMap;
Run Code Online (Sandbox Code Playgroud)
我用三个键初始化它,然后检查它是否可以找到它:
myMap["zero"] = 0;
myMap["first"] = 1;
myMap["second"] = 2;
if (myMap.at("zero") != 0)
{
std::cerr << "We have a problem here..." << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
什么都没打印出来.从这里,一切看起来都不错.
但是后来在我的代码中,没有对此地图进行任何更改,我尝试再次找到一个键:
int value = myMap.at("zero");
Run Code Online (Sandbox Code Playgroud)
但该at函数抛出std::out_of_range异常,这意味着它无法找到该元素.myMap.find("zero")认为是一样的,因为它在地图的末尾返回一个迭代器.
但最棘手的部分是关键是真的在地图中,如果在调用at函数之前,我打印地图的内容如下:
for (auto it = myMap.begin(); it != myMap.end(); it++)
{
std::cout << (*it).first << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
输出如预期:
零
第一
秒
怎么可能呢?我不使用任何beta测试库或任何应该不稳定的东西.
c++ ×3
javascript ×2
arrays ×1
c ×1
c++11 ×1
convolution ×1
curly-braces ×1
dictionary ×1
fftw ×1
gaussian ×1
inheritance ×1
javadoc ×1
kibana ×1
lucene ×1
macros ×1
postgresql ×1
scope ×1
std ×1
triggers ×1