小编Mat*_*der的帖子

R的sum()和Armadillo的accu()之间的差异

当给出相同的输入时,R sum()函数和RcppArmadillo accu()函数的结果存在细微差别.例如,以下代码:

R:

vec <- runif(100, 0, 0.00001)
accu(vec)
sum(vec)
Run Code Online (Sandbox Code Playgroud)

C++:

// [[Rcpp::depends("RcppArmadillo")]]
// [[Rcpp::export]]
double accu(arma::vec& obj)
{
    return arma::accu(obj);
}
Run Code Online (Sandbox Code Playgroud)

给出结果:

0.00047941851844312633(C++)

0.00047941851844312628(R)

根据http://keisan.casio.com/calculator的说法,真正的答案是:

4.79418518443126270948E -4-

这些小的差异在我的算法中加起来并且显着影响它的执行方式.有没有办法在C++中更准确地总结向量?或者至少在不必调用R代码的情况下获得与R相同的结果?

c++ precision r armadillo rcpp

15
推荐指数
2
解决办法
1427
查看次数

R 无法识别命令行选项。(警告:未知选项“-d”)

我正在尝试使用 gdb 以与视频中指定的相同方式调试 R 包中的编译代码:https : //vimeo.com/11937905编写 R 扩展第 4.4 节。

这些消息来源说R -d gdb在启动 R 时使用该命令 。但是,每当我尝试这样做时,我都会收到一条消息,说WARNING: unknown option '-d'R 在正常情况下启动。为什么 R 不识别 -d 标志?我正在使用 Windows 10。

windows gdb r

6
推荐指数
1
解决办法
1196
查看次数

R包中的MD5文件是做什么用的?它是如何产生的?

我注意到我下载的许多 R 包的目录中存在一个名为“MD5”的文件。但是,我在“编写 R 扩展”手册中找不到提及此内容。它列出了包中不同文件的 MD5 哈希值和文件名。这个文件是做什么用的?它应该包含在我的包裹中吗?它是如何产生的?

md5 r r-package

5
推荐指数
2
解决办法
3356
查看次数

如何在Windows 7命令提示符下的findstr命令中使用OR运算符?

Findstr应该支持正则表达式,而我使用它的方式则需要使用“或”来检查文件是否以“ .exe”或“ .dll”结尾。但是,我无法使或操作正常进行。使用“ |”时 Windows认为我正在尝试传递上一个命令,并且“ OR”被读为字面上的OR

windows command-line findstr windows-7

4
推荐指数
1
解决办法
5729
查看次数

Boost::geometry 如何将多边形添加到 multi_polygon

我想boost::geometry::model::multi_polygon通过boost::geometry::model::polygon在循环中添加s来创建一个。我已经查看了 boost 的示例和文档,但他们不清楚如何去做。这是我的代码

typedef boost::geometry::model::d2::point_xy<double> point_xy;
typedef boost::geometry::model::polygon<point_xy> polygon_type;
typedef boost::geometry::model::multi_polygon<polygon_type> multi_polygon_type;

    // Calculate centroid
    multi_polygon_type polygons;

    Q_FOREACH( QGraphicsItem* graphicsItem, allItemsInScene )
    {
        // Make a polygon for each graphics item
        polygon_type poly;

        // Find bounding box surrounding item and create boost compatible points from it
        QRectF boundingBox = graphicsItem->boundingRect();

        std::vector< point_xy > pointList; // Store points in vector so we can assign them to a polygon

        point_xy topLeft( boundingBox.topLeft().x(), boundingBox.topLeft().y() );
        pointList.push_back( topLeft );

        point_xy …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-geometry

4
推荐指数
1
解决办法
1976
查看次数

PyQt5连接不起作用:在此上下文中无法将项转换为PyQt5.QtCore.QObject

我正在尝试连接来自创建对象的信号并且收到错误.这是我的代码的简化版本:

class OverviewWindow(QMainWindow):
    def __init__(self, projectClusters, users, contributorDict, userLastRevPerProj):
        QMainWindow.__init__(self)
        # Code....

    def createUserNodes(self):
        userNodes = {}
        nodeSpread = 50
        yPos = -400
        nodeSpan = nodeSpread + 100
        width = (len(self.usersFilt) - 1) * nodeSpan
        xPos = 0 - (width / 2)

        for user in self.usersFilt:
            newItem = NodeItem(xPos, yPos, self.nodeDiameter, user, True)
            newItem.nodeDoubleClicked.connect(self.dc)
            userNodes[user] = newItem
            self.graphicsScene.addItem(newItem)
            xPos += nodeSpan

        return userNodes

    @pyqtSlot(str)
    def dc(self, text):
        print(text)


class NodeItem(QGraphicsItem):
    nodeDoubleClicked = pyqtSignal(str)

    def __init__(self, xPos, yPos, diameter, text, isUserNode): …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt signals-slots pyqt5

4
推荐指数
1
解决办法
4010
查看次数

即使写入数据,Python NamedTemporaryFile也显示为空

在Python 2中,创建临时文件并访问它很容易。但是,在Python 3中似乎不再是这种情况。我对如何获取使用tempfile.NamedTemporaryFile()创建的文件感到困惑,因此可以在其上调用命令。

例如:

temp = tempfile.NamedTemporaryFile()
temp.write(someData)
subprocess.call(['cat', temp.name]) # Doesn't print anything out as if file was empty (would work in python 2)
subprocess.call(['cat', "%s%s" % (tempfile.gettempdir(), temp.name])) # Doesn't print anything out as if file was empty
temp.close()
Run Code Online (Sandbox Code Playgroud)

python temporary-files python-3.x

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

屏幕方向更改时如何开始新活动?Android的

我正在编写一个应用程序,在纵向视图中顶部有一个图库,当您单击图片时,它将膨胀并填满整个屏幕.

这适用于横向模式,画廊覆盖了大部分图片,一般看起来很糟糕.

我为横向模式制作了一个GridView.我现在遇到的问题是当方向发生变化时,将其从图库活动更改为Gridview活动.有任何想法吗?

android landscape orientation android-activity

0
推荐指数
1
解决办法
1903
查看次数

你如何在Qt中使用unicode?

我想在QLineEdit字段中使用放大镜(U + 1F50E) Unicode符号.我想出了如何使用QChar使用16位unicode符号但是我不知道如何使用由5个十六进制数字表示的unicode符号.

QLineEdit edit = new QLineEdit();
edit.setFont(QFont("Segoe UI Symbol"));
edit.setText(????);
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试过:

edit.setText(QString::fromUtf8("\U0001F50E"));
Run Code Online (Sandbox Code Playgroud)

哪给了编译器警告:

warning C4566: character represented by universal-character-name '\UD83DDD0E' cannot be represented in the current code page
Run Code Online (Sandbox Code Playgroud)

并显示为:??

我也尝试过:

edit.setText(QString("\U0001F50E"));
Run Code Online (Sandbox Code Playgroud)

哪给了编译器警告:

warning C4566: character represented by universal-character-name '\UD83DDD0E' cannot be represented in the current code page (1252)
Run Code Online (Sandbox Code Playgroud)

并且还给了:??

我尝试了你可以用QChar尝试的一切.我也尝试切换我的CPP文件的编码并复制和粘贴符号,这不起作用.

c++ unicode encoding qt qt4

0
推荐指数
1
解决办法
2132
查看次数