小编nib*_*bot的帖子

有没有一种方法可以将类型化数组设置为零?

有没有办法将 Javascript类型数组(即 a Uint32Array)的每个元素设置为某个值(类似于 C 函数memset会做的事情)?

var foo = new Uint32Array(16384);
for (int i=0; i<foo.length; i++) {   // I want to do this without a for-loop
    foo[i] = 0xdeadbeef;
}
Run Code Online (Sandbox Code Playgroud)

javascript typed-arrays

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

将JPG数据正确嵌入Inkscape生成的PDF文件中

Inkscape中存在一个错误,其中SVG文档中包含的JPEG图像在导出为PDF文件时嵌入为位图而不是JPEG.

结果是文件大小大幅增加.例如,我有一个简单的SVG绘图,其中包含一个2 MB的JPEG图像; 导出为PDF会产生14 MB的文件.

我正在寻找一种解决方法.有没有办法通过插入正确编码的JPG图像来修复生成的PDF,可能是通过某种pdftk技巧?

(在我的情况下,生成的PDF将作为图形包含在使用pdflatex呈现的LaTeX文档中,因此除了直接修复由Inkscape生成的PDF之外,可能还有其他解决方法.)

pdf jpeg inkscape

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

Matlab中的张量收缩

可能重复:
MATLAB:如何向量乘两个矩阵数组?

有没有办法在Matlab中签订高维张量?

例如,假设我有两个三维数组,具有以下大小:

size(A) == [M,N,P]
size(B) == [N,Q,P]
Run Code Online (Sandbox Code Playgroud)

我想承包AB分别在第二和第一指标.换句话说,我想考虑A成为一个大小矩阵的数组,[M,N]并且B是等长的[N,Q]矩阵数组; 我想逐个元素(逐个矩阵)乘以这些数组来获得大小[M,Q,P].

我可以通过for循环来做到这一点:

assert(size(A,2) == size(B,1));
assert(size(A,3) == size(B,3));

M = size(A,1);
P = size(A,3);
Q = size(B,2);

C = zeros(M, Q, P);
for ii = 1:size(A,3)
    C(:,:,ii) = A(:,:,ii) * B(:,:,ii);
end
Run Code Online (Sandbox Code Playgroud)

有没有办法避免for循环?(也许可以使用任意数量维的数组?)

matlab matrix vectorization matrix-multiplication

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

在C中,指针和数组之间的算术如何工作?

y的价值应该是什么?为什么?

int x[] = { 1, 4, 8, 5, 1, 4 }; 
int *ptr, y; 
ptr  = x + 4; 
y = ptr - x;  
Run Code Online (Sandbox Code Playgroud)

我认为y应该是4*sizeof(int),但它给出了4.为什么?

c pointers

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

如何计算两个多重集的就地设置差异?

假设我有两个multisets.我想从第一个多集中删除第二个多集中出现的所有元素,并考虑每个多集中每个元素出现的次数.例如,如果multiset a包含1五次,而multiset 包含b两次,则在计算时a -= b,只1应删除两个实例a.

以下是一些实现此目的的代码:

 multiset<int> a;
 multiset<int> b;

 // remove all items that occur in b from a, respecting count ("a -= b")
 for (multiset<int>::iterator i = b.begin(); i != b.end(); i++) {
    if (a.count(*i) < 1) {
       // error 
    }
    // a.erase(*i) would remove ALL elements equal to *i from a, but we 
    // only want to remove one.  a.find(*i) gives an iterator to …
Run Code Online (Sandbox Code Playgroud)

c++

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

Python中的异步cmd或readline

我想编写一个简单的程序,两者(1)同时产生输出行,(2)通过命令行(通过readline)接受来自用户的输入。(例如,以文本模式的聊天客户端为例。我希望能够撰写我的聊天消息,同时仍能看到收到的传入聊天消息。)要实现此目的,我希望能够异步调用readline。

Readline库通过其回调接口明确支持此功能

备用接口可用于普通readline()。某些应用程序通常需要通过使用主循环在各种文件描述符上使用select()来使键盘I / O与文件,设备或窗口系统I / O交织。为了满足这种需求,还可以从事件循环中将readline作为“回调”函数来调用。有一些功能可以简化这一过程。

  • 可以通过Python使用此功能吗?
  • 可以将Cmd类用于此目的吗?

python asynchronous readline nonblocking

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

点积:*命令与循环给出不同的结果

我在Matlab中有两个向量,zbeta.矢量z是1x17:

1 0.430742139435890 0.257372971229541 0.0965909090909091 0.694329541928697 0 0.394960106863064 0 0.100000000000000 1 0.264704325268675 0.387774594078319 0.269207605609567 0.472226643323253 0.750000000000000 0.513121013402805 0.697062571025173

......并且beta是17x1:

6.55269487769363e+26 0 0 -56.3867588816768 -2.21310778926413 0 57.0726052009847 0 3.47223691057151e+27 -1.00249317882651e+27 3.38202232046686 1.16425987969027 0.229504956512063 -0.314243264212449 -0.257394312588330 0.498644243389556 -0.852510642195370

我正在处理一些奇点问题,我注意到如果我想计算点积z*beta,我可能得到两个不同的解决方案.如果我使用该*命令,z*beta = 18.5045.如果我写一个循环来计算点积(下图),我得到一个0.7287的解.

summation=0;
for i=1:17
    addition=z(1,i)*beta(i);
    summation=summation+addition;
end
Run Code Online (Sandbox Code Playgroud)

知道这里发生了什么吗?

这是数据的链接:https://dl.dropboxusercontent.com/u/16594701/data.zip

floating-point matlab floating-accuracy dot-product

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