小编Max*_*rch的帖子

在ipython中更改imshow的分辨率

我正在使用ipython,其代码如下所示:

image = zeros(MAX_X, MAX_Y)

# do something complicated to get the pixel values...
# pixel values are now in [0, 1].

imshow(image)
Run Code Online (Sandbox Code Playgroud)

但是,生成的图像始终具有相同的分辨率,大约为(250x250).我认为图像的尺寸是(MAX_X x MAX_Y),但看起来并非如此.如何让ipython为我提供更高分辨率的图像?

python matplotlib ipython ipython-notebook

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

打字稿中的前向声明

我有两个需要了解彼此成员的课程.

在C++中,我使用前向声明.

打字稿需要做什么?

forward-declaration typescript

11
推荐指数
2
解决办法
5441
查看次数

在CMake add_custom_command中捕获返回值?

我如何获取由add_custom_command?调用的命令的返回值?

我以为我可以这样做,

macro(mac param1)
    execute_process(COMMAND process ${param1} RESULT_VARIABLE res_var)
    if(${res_var} ....

endmacro(mac)

add_custom_command(COMMAND mac(param1))
Run Code Online (Sandbox Code Playgroud)

但那不行.我发现即使是平原

macro(mac)
endmacro()

add_custom_command(COMMAND mac())
Run Code Online (Sandbox Code Playgroud)

不起作用.在建设时,sh抱怨:

/bin/sh: 1: Syntax error: end of file unexpected
Run Code Online (Sandbox Code Playgroud)

或者,如果我不使用宏,但称execute_processadd_custom_command本身:

/bin/sh: 1: Syntax error: word unexpected (expecting ")")
Run Code Online (Sandbox Code Playgroud)

我想这add_custom_command不会指望传递宏或内置函数.但是,如何从命令中获取返回值add_custom_command?或者,不那么具体,我怎么能抓住命令add_custom_command失败?

cmake

10
推荐指数
1
解决办法
7188
查看次数

IntelliJ拒绝添加自定义组件

我的问题如下:假设我们有以下文件:

package p;
import javax.swing.*;
public class test extends JPanel {
  test(){
    super(true);
  }
}
Run Code Online (Sandbox Code Playgroud)

我保存文件并编译它.现在,在IntelliJ中,我打开一个表单并尝试添加test它.它不会起作用!我点击'非调色板组件',点击我的表格,然后在打开的对话框中输入p.test我的班级名称(IntelliJ甚至在这里提供名称完成)并选中'自动创建绑定'.单击确定后,没有任何反应.但是 - 如果我把'javax.swing.JButton'作为类名,它就可以了.这太荒谬了.我不明白我做错了什么?测试是否必须实现或覆盖某个功能?我必须修改路径吗?或者我应该把我的电脑从窗户踢出来?

java swing intellij-idea

5
推荐指数
1
解决办法
2123
查看次数

使用动态目标名称制作

我知道我可以使用$@makefile 中目标内的自动变量来检索当前目标的名称。现在我想知道是否有可能有一个看起来像这样的 makefile:...

$@:
    g++ $@ && ./a.out
Run Code Online (Sandbox Code Playgroud)

这个想法是打字make test.cpp应该g++ test.cpp && ./a.out在应该运行的地方make main.cpp运行g++ main.cpp && ./a.out

我看到通配符可能与我的问题密切相关。但是,像这样的makefile:

*.cpp:
    g++ $@ && ./a.out
Run Code Online (Sandbox Code Playgroud)

确实创建了适当的目标,但是make test.cpp使用这样的 makefile运行会产生make: >>test.cpp<< is already up-to-date- 没有进行编译。

makefile gnu-make

5
推荐指数
1
解决办法
7209
查看次数

git - 只获取文件,而不是历史记录

当我跑步git pull或者git fetch,我显然检索历史和文件.对于大型项目,这需要很长时间.我想知道如何加快这个过程,对于一些项目我只对源代码而不是历史感兴趣.有没有办法告诉git我只想获取文件的当前快照而不是整个历史记录?

git performance repository

3
推荐指数
2
解决办法
1609
查看次数

R 迭代列表中的连续对

假设我有以下向量:

v1 = c(1,2,3,4)

我需要以成对的方式迭代这个向量,比如(1,2), (2,3), (3,4). 对于python,这里有一个解决这个问题的方法:迭代列表中所有连续的项目对。在 R 中可以实现类似的解决方案吗?

r list

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

Qt同步不可能在这里?

考虑以下情况:

class SomeClass : public QObject
{
  Q_OBJECT
private:
    unsigned long long someVar;

public:
    unsigned long long getSomeVar(){
        return someVar;
    void threadFunc();
}
Run Code Online (Sandbox Code Playgroud)

threadFunc() 将在一个新线程中调用(你猜对了),它将如下所示:

void SomeClass::threadFunc()
{
  ++someVar;
  // Do stuff...
}
Run Code Online (Sandbox Code Playgroud)

现在,在另一个主题中,我想阅读someVar.我打电话来这样做getSomeVar().但是,需要同步.我怎么做?对于构成的线程somevar,同步并不难.它只会是

void SomeClass::threadFunc()
{
  mut.lock();
  ++someVar;
  mut.unlock();
  // Do stuff...
}
Run Code Online (Sandbox Code Playgroud)

QMutex mut在类声明中添加了一个.但是我该如何同步getSomeVar()?我不能只说:

unsigned long long getSomeVar(){
  mut.lock();
  return someVar;
  mut.unlock();
}
Run Code Online (Sandbox Code Playgroud)

mut.unlock()因为return之前的陈述而永远不会被召唤.

我知道通常这样的冲突可以通过写作来避免......

unsigned long long getSomeVar(){
  QMutex mut;
  // mut-constructor calls mut.lock()
  return …
Run Code Online (Sandbox Code Playgroud)

c++ qt multithreading

2
推荐指数
1
解决办法
206
查看次数

检索用户路径环境变量

我尝试在 Windows 上检索路径环境变量。因此,我试过

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
  char* path = getenv("Path");
  cout << "current path is:" << path << endl;
  cin.get(); // program shall be closed when it's finished
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,并为我提供了一条路径。我将它与我的实际路径进行了比较,发现我通过该程序检索到的路径是系统路径。但是,我不想获取系统路径,而是获取用户路径。我试图更改"Path"as 在我的系统上"path"引用用户路径变量而"Path"引用系统路径变量的情况,但getenv似乎忽略了这一点。如何获取系统路径变量的值?

c++ windows env environment-variables getenv

2
推荐指数
1
解决办法
1500
查看次数

如何加入两个matplotlib人物

我有一个脚本,可从数据生成matplotlib数字。这些图将保存到磁盘,如下所示:

fig, ax = plt.subplots() # create the plot # ... pickle.dump(ax, open(of, 'wb'))

在另一个脚本中,我想加入其中某些情节。我可以使用以下方式读取数据:

figures = [pickle.load(file) for file in files]

(FWIW,我读回的数字带有类型AxesSubplot。)

到目前为止,一切都很好。现在,我想使用可用图的最大或最小比例将两个(或多个)图形的数据放在一起。由于缺乏经验,我完全不知道如何实现这一目标。我确实发现了有关加入地块的问题,并且共识是首先绘制一个图形。在我的情况下,这将非常困难,因为单个数据集的绘制逻辑已经很复杂。(还有其他原因,为什么每个数据集都应首先自己绘制,然后才可能与其他数据集连接)。

我要加入的图以相同的方式表示其数据-即所有图都是线图或直方图(不确定要如何有效地连接那些图)或QQPlot(请参阅statsmodels.api)。它们可能具有或可能不具有相同的数据大小。

如何加入不同数字的地块?

matplotlib python-3.x

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

std :: move on two deques - 输入vs输出迭代器

看看下面的代码:

#include <algorithm>
#include <deque>
#include <iostream>

using namespace std;

int main()
{
  deque<int> in {1,2,3};
  deque<int> out;
  // line in question
  move(in.begin(), in.end(), out.begin());
  for(auto i : out)
    cout << i << endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

这不会移动任何东西.看一下这里的例子,必须写下这样的行:

move(in.begin(), in.end(), std::back_inserter(out));
Run Code Online (Sandbox Code Playgroud)

这在某种程度上是有道理的,因为std :: move期望它的前两个参数是InputInterators(这里满足),第三个参数是OutputIterator(out.begin()不是).

如果原始代码被执行并且move被传递给不是OutputIterator的迭代器,那么实际会发生什么?为什么C++的类型安全在这里不起作用?为什么输出迭代器的构造委托给外部函数,即为什么不out.backInserter()存在?

c++ iterator move std c++11

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

operator =在不同维度的向量上

考虑以下代码:

class vector{
   // ...
   vector(int size){ /*...*/ };
   vector& operator= (const vector& other){
   // ...
   }
};

int main(){
   vector v1(5), v2(10);
   v1 = v2;
}
Run Code Online (Sandbox Code Playgroud)

operator =应该在这做什么?v1没有足够的容量存储元素v2.从我的角度来看,它可以将自身重新初始化为10的容量,并复制其他向量的元素或抛出异常.我通常选择前一种方法,但越来越多地经常看到后者.哪一个是正确的?

c++ operators assignment-operator assign

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

kivy语言文件根目录与<root> - 按惯例加载与生成器加载

首先,对于长标题感到抱歉,但我无法想出一个更好的方法来表达我的问题.

您好,我对kivy语言文件中的符号感到有点困惑:根据文档的第一行,前一种语法表示根项,

rootObj:
    Button:
        ....
Run Code Online (Sandbox Code Playgroud)

而后者则表示某种规则:

<rootObj>:
    Button:
        ....
Run Code Online (Sandbox Code Playgroud)

我认为以前的语法描述了我称之为该窗口的根对象作为我的python类,即python-class rootObj应该用作我的root-object example.kv.因此,我不明白括号内语法的目的.但是假设我在目录中有以下文件.

main.py
main.kv
Run Code Online (Sandbox Code Playgroud)

main.py看起来像这样:

def rootObj(Widget):
    pass

def MainApp(App):
    def build(self):
        return rootObj()

if __name__ == "__main__":
    MainApp().run()
MainApp().run()
Run Code Online (Sandbox Code Playgroud)

MainApp运行并按照惯例加载main.kv.Kivy调用MainApp.build()并返回我想成为根对象的实例.为了使这个例子有效,我必须采用后一种方法,即在那些奇怪的<>括号中指定根对象的名称.我想知道,为什么我必须指定root-Object的名称MainApp.build().或者我完全错了,kivy采取rootObj()并将其中的内容添加到.kv-file?一些启示会派上用场.

如果我现在将目录结构更改为这样的...

 ui     
  \----main.kv     
 main.py
Run Code Online (Sandbox Code Playgroud)

...并return rootObj()改为return Builder.load_file("gui/main.kv"),我突然不得不使用无括号语法 - 但我不知道为什么.

有人可以解释一下kivy如何按惯例处理加载并由Builder-object加载的语法和内部的差异?

python kivy

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