小编Rod*_*edo的帖子

ZeroMQ和Python中的多个订阅过滤器

我想使用一个套接字在Python中订阅使用ZeroMQ的多个过滤器.

sock.setsockopt(zmq.SUBSCRIBE, 'first.filter')
sock.setsockopt(zmq.SUBSCRIBE, 'second.filter')
Run Code Online (Sandbox Code Playgroud)

但这不起作用.只考虑第一个.但是,我在zeromq网站上看到了这个:

可以将多个过滤器连接到单个ZMQ_SUB套接字,在这种情况下,如果消息与至少一个过滤器匹配,则应接受该消息.

我正在使用zmq 2.2.0.1.所以,我想知道该怎么做.有任何想法吗?

python sockets zeromq

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

在主程序运行时替换共享对象(.so文件)

我有一个共享对象gateway.so(在Linux/C中).而a.out应用程序正在使用它.

问题A.

我猜:当进程a.o​​ut启动时,加载器加载gateway.so(我没有使用dl函数dlopen).因此,对gateway.so的所有运行时符号解析都将在内存中进行.它不再需要从磁盘访问gateway.so.

我对吗?

所以我无法用更新版本替换gateway.so,而a.out正在运行,对吧?

问题B

另一个相关的问题:一旦我替换了版本的gateway.so文件,我收到了消息

"a.out:无法解析符号'Test_OpenGateway'"

哪个程序组件(加载器/链接器......)发送此输出?该组件是作为相同进程上下文的一部分执行的吗?

c linux shared-libraries

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

在struct中声明int数组

在C中,我定义了struct下面看到的内容,并希望将其初始化为内联.foos初始化后,结构中的字段和数组都不会更改.第一个块中的代码工作正常.

struct Foo {
  int bar;
  int *some_array;
};

typedef struct Foo Foo;

int tmp[] = {11, 22, 33};
struct Foo foos[] = { {123, tmp} };
Run Code Online (Sandbox Code Playgroud)

但是,我真的不需要这个tmp领域.实际上,它只会使我的代码混乱(这个例子有点简化).所以,相反我想声明的值some_array的声明内foos.但是,我无法获得正确的语法.也许这个领域some_array应该有不同的定义?

int tmp[] = {11, 22, 33};
struct Foo foos[] = {
  {123, tmp},                    // works
  {222, {11, 22, 33}},           // doesn't compile
  {222, new int[]{11, 22, 33}},  // doesn't compile
  {222, (int*){11, 22, 33}},     // doesn't compile
  {222, (int[]){11, 22, …
Run Code Online (Sandbox Code Playgroud)

c arrays struct

16
推荐指数
2
解决办法
6万
查看次数

使用SVD在MATLAB中压缩图像

我是MATLAB的新手,但我正在尝试为灰度图像做一些图像压缩代码.

问题

如何使用SVD修剪低值特征值来重建压缩图像?

到目前为止的工作/尝试

到目前为止我的代码是:

B=imread('images1.jpeg');   
B=rgb2gray(B);  
doubleB=double(B);  
%read the image and store it as matrix B, convert the image to a grayscale
photo and convert the matrix to a class 'double' for values 0-255  
[U,S,V]=svd(doubleB);
Run Code Online (Sandbox Code Playgroud)

这允许我用存储在变量S中的特征值成功地分解图像矩阵.

如何截断S(167x301,类double)?让我们说一下167个特征值我只想要前100个(或任何n个),我该怎么做并重建压缩图像?

更新了代码/想法

这不是在评论部分放置一堆代码,而是我现有的草案.我已经能够通过手动更改N来成功创建压缩图像,但我还想做两件事:

1-显示各种压缩图像的面板(i/e,运行N = 5,10,25等的循环)

2-以某种方式计算每个图像与原始图像之间的差异(误差)并绘制图形.

我理解循环和输出很糟糕,但这是我尝试过的:

B=imread('images1.jpeg');  
B=rgb2gray(B);  
doubleB=im2double(B);%  
%read the image and store it as matrix B, convert the image to a grayscale  
%photo and convert the image to a class 'double'  
[U,S,V]=svd(doubleB);   
C=S;  
for N=[5,10,25,50,100]  
C(N+1:end,:)=0;  
C(:,N+1:end)=0;  
D=U*C*V';  
%Use …
Run Code Online (Sandbox Code Playgroud)

matlab image-processing octave svd image-compression

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

在switch语句中使用enum类型

如果检测到一些特殊情况,我正在使用switch语句提前从我的main函数返回.特殊情况使用枚举类型进行编码,如下所示.

typedef enum {
    NEG_INF,
    ZERO,
    POS_INF,
    NOT_SPECIAL
} extrema;

int main(){

    // ...

    extrema check = POS_INF;

    switch(check){
        NEG_INF: printf("neg inf"); return 1;
        ZERO: printf("zero"); return 2;
        POS_INF: printf("pos inf"); return 3;
        default: printf("not special"); break;
    }

    // ...

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我运行它时,字符串not special被打印到控制台,主要功能的其余部分继续执行.

如何让switch语句在这里正常运行?谢谢!

c enums switch-statement

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

使用等于运算符==在C中比较两个字符串的相等性

int main (int argc, **argv)
{
       if (argv[1] == "-hello")
            printf("True\n");
       else
            printf("False\n");
}
Run Code Online (Sandbox Code Playgroud)
# ./myProg -hello
False

为什么?我意识到strcmp(argv[1], "-hello") == 0返回true ...但为什么我不能使用相等运算符来比较两个C字符串?

c string pointers equality equality-operator

13
推荐指数
5
解决办法
5万
查看次数

有没有办法在SymPy中获得逐步解决方案?

有没有办法在SymPy中获得逐步解决方案?例如:

x**2-5 = 4
  step 1 x**2-5+5=4+5
  step 2 : x**2=9
  step 3 :x = 3 or x= -3
Run Code Online (Sandbox Code Playgroud)

python math sympy

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

在Python/NumPy中计算Jordan正常的矩阵形式

在MATLAB中,您可以使用该函数计算矩阵的Jordan正规形式jordan.

它有NumPy和SciPy中的等效功能吗?

python numpy matrix linear-algebra scipy

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

检查正确性或正半定性

我想用Python检查矩阵是正定的还是正半定的.

我怎样才能做到这一点?SciPy中是否有针对该模块或其他模块的专用功能?

python math matrix linear-algebra scipy

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

如何在Python中以相反的顺序读取CSV文件?

我知道如何为TXT文件执行此操作,但现在我在为CSV文件执行此操作时遇到了一些麻烦.

如何在Python中从底部读取CSV文件?

python csv

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