标签: sparse-matrix

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

如何将 tibble 转换为稀疏矩阵

考虑这个简单的小标题

\n\n
> data_frame(col1 = c(1,2,3), col2 = c(3,2,NA))\n# A tibble: 3 x 2\n   col1  col2\n  <dbl> <dbl>\n1     1     3\n2     2     2\n3     3    NA\n
Run Code Online (Sandbox Code Playgroud)\n\n

将其转换为稀疏矩阵的最有效方法是什么?\n我尝试了类似的方法

\n\n
> data_frame(col1 = c(1,2,3), col2 = c(3,2,NA)) %>% \n+   as(., \'sparseMatrix\')\nError in as(from, "CsparseMatrix") : \n  no method or default for coercing \xe2\x80\x9ctbl_df\xe2\x80\x9d to \xe2\x80\x9cCsparseMatrix\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

没有成功。按照建议尝试:

\n\n
y <- purrr::reduce(cbind2, map(df, \'Matrix\', sparse = TRUE))\n
Run Code Online (Sandbox Code Playgroud)\n\n

也不行。

\n\n

使用 tidyverse 有什么好主意吗?\n谢谢!

\n

r sparse-matrix dplyr purrr

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

MATLAB:将两个数组转换为稀疏矩阵

我正在寻找一个命令或技巧来将两个数组转换为稀疏矩阵.这两个数组包含x值和y值,它们给出了笛卡尔坐标系中的坐标.我想对坐标进行分组,如果值在x轴上的某个值和y轴之间.

% MATLAB
x_i = find(x > 0.1 & x < 0.9);
y_i = find(y > 0.4 & y < 0.8);

%Then I want to find indicies which are located in both x_i and y_i
Run Code Online (Sandbox Code Playgroud)

这个小技巧有一个简单的方法吗?

matlab sparse-matrix

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

将随机数传递给java中的2d数组

为什么我在我的代码中得到错误 - 我创建了两个方法,randomGen生成一个随机数,matrixGen用随机数创建矩阵.我得到不兼容的类型错误.如果有人可以请我指出正确的方向我可能做错了什么..我还在学习阶段..继承我的代码:

import java.util.Random;

public class sparse{
    static int matrix [][] = new int[6][6];

    public static int randomGen(){
        int rA;
        Random r = new Random();
        rA = r.nextInt(100);
        return rA;
    }

    public static int[][] matrixGen(){
        for(int i=0; matrix[i].length < i; i++){
            for(int j=0; matrix[j].length <j; j++){
                matrix[i] = matrix[i].randomGen();
                matrix[j] = matrix[j].randomGen();
            }
        }
        return matrix[i][j];
    }

    public static void main(String args[]){
        new sparse();
    }
}
Run Code Online (Sandbox Code Playgroud)

java 2d matrix sparse-matrix

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

Matlab:使用稀疏结构以二进制数加和的快速方法?

大多数答案仅针对已经回答的有关汉明重量的问题,但忽略了关于find稀疏性的观点.显然,通过夏嘉曦答案在这里解决了约找到一点-但我现在还无法验证它.我在这里的答案并没有利用其他答案的独创性,比如位移,但足够好的例子答案.

输入

>> mlf=sparse([],[],[],2^31+1,1);mlf(1)=10;mlf(10)=111;mlf(77)=1010;  
>> transpose(dec2bin(find(mlf)))

ans =

001
000
000
011
001
010
101
Run Code Online (Sandbox Code Playgroud)

目标

1
0
0
2
1
1
2    
Run Code Online (Sandbox Code Playgroud)

使用稀疏结构快速计算二进制数的1?

math binary matlab sparse-matrix

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

从R中稀疏矩阵的第i行的非零值中减去矢量的第i个值

我想从例如稀疏矩阵的第i行的非零值中减去矢量的第i个值

     [,1] [,2] [,3] [,4]
[1,]    0    0    4    0
[2,]    0    5    0    3
[3,]    1    2    0    0
Run Code Online (Sandbox Code Playgroud)

这是我试图减去的向量:

[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)

所以我最终需要的是:

     [,1] [,2] [,3] [,4]
[1,]    0    0    3    0
[2,]    0    3    0    1
[3,]   -2   -1    0    0
Run Code Online (Sandbox Code Playgroud)

我试过这个使用申请,但一直无法解决问题,它并没有让我回想起我想要的东西.矩阵的尺寸太大,我不想使用循环.感谢致敬.

r machine-learning sparse-matrix

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

大型矩阵运算:Scala/Apache Spark中的乘法

我需要乘以两个大矩阵,X并且Y.通常X具有~500K行和~18K列,并Y具有~18K行和~18K列.X预计矩阵是稀疏的,并且矩阵Y预计是稀疏/密集的.在Scala/Apache Spark中执行此乘法的理想方法是什么?

scala sparse-matrix large-data matrix-multiplication apache-spark

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

如何在Matlab中计算大型稀疏矩阵的零点?

我在Matlab中有一个矩阵问题.
我有1百万x 1百万稀疏矩阵,我一直在使用null.通常,问题是我的内存不足.我试过svds(svd用于稀疏矩阵),但我的问题是我的内存不足.对于null()Matlab中的函数,是否有可能解决大型稀疏矩阵的问题?

null matlab sparse-matrix

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

稀疏矩阵如何影响内存使用率?

在下面的示例中,我正在创建一个numpy带有零的大对象,在对角线上放置一个随机数,然后转换为scipy稀疏矩阵。我的内存使用情况报告来自任务管理器。

>>> import sys, random
>>> import numpy as np
>>> from scipy import sparse
## Memory in use at this point: 3.1 Gb
>>> m = np.zeros(shape = (40000, 40000), dtype = float)
>>> sys.getsizeof(m)
12800000112
## Memory in use at this point: 3.3 Gb
>>> for i in range(40000):
        m[i][i] = round(random.random(),3)        
>>> sys.getsizeof(m)
12800000112
## Memory in use at this point: 3.3 Gb
>>> mSp = sparse.csr_matrix(m)
>>> sys.getsizeof(mSp)
56
## Memory in …
Run Code Online (Sandbox Code Playgroud)

python matrix sparse-matrix

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

使用带有下标运算符的赋值运算符为std :: map赋值

我有一个Matrix类

template <typename T>
class Matrix
{
public:
  const size_t rows;
  const size_t cols;
  const std::map<std::array<int, 2>, T> data;

  Matrix(int a, int b) : rows(a), cols(b)
  {
  }
};
Run Code Online (Sandbox Code Playgroud)

这是如下初始化:

Matrix<double> M(5,5);
Run Code Online (Sandbox Code Playgroud)

创建一个5x5矩阵.

我想像这样为地图赋值:

M[{1,2}] = 1;
Run Code Online (Sandbox Code Playgroud)

我将如何以最易读的方式做到这一点?我不知道如何让下标和赋值运算符一起工作.

c++ matrix sparse-matrix c++11

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