我有一个问题,计算由一个大的(200000x200000)矩阵表示的网络函数的约化,该矩阵生成为点对之间的距离矩阵。
最小示例,输入X一个200000x2数组的笛卡尔坐标:
x = tf.constant(X[:,0], shape=[X.shape[0],1])
y = tf.constant(X[:,1], shape=[X.shape[0],1])
dx = x - tf.transpose(x)
dy = y - tf.transpose(y)
D = tf.sqrt(dx*dx + dy*dy)
M = 0.1 * 5.0 / tf.pow(4.0 + D, 1.5)
res = t
我有一个大的稀疏二进制矩阵(大约39,000 x 14,000;大多数行只有一个"1“条目)。我想将类似的行聚在一起,但我的最初计划需要很长时间才能完成:
d <- dist(inputMatrix, method="binary")
hc <- hclust(d, method="complete")
第一步还没有结束,所以我不确定第二步会怎么样。在R中,有哪些方法可以有效地对大型、稀疏的二进制矩阵中的相似行进行分组?
我想要创建一个程序,以计算距离矩阵的结果,我的计算集。有关这些集的数据是从文件中提取的。我目前有类似下面的代码,但可能我的想法很糟糕,它可以改进(例如,集合只列出,而不是排序)。
my_list = []
file = open("plik.txt","r")
for i in file:
my_sets = i.split(", ")
A = set(my_sets[0])
B = set(my_sets[1])
a = len(A.difference(B))
b = len(B.difference
我需要从一个矩阵创建一个距离矩阵,它返回列之间的距离。
,我知道存在一个名为dist()的函数,但是我不能使用它,因为我不会使用普通的距离函数。
我在考虑使用申请,但我不知道怎么写。
我创建的循环是:
dista <- function(A,distance){
dist_matrix=matrix(0,dim(A)[2],dim(A)[2])
for (i in 1:(dim(A)[2]-1)){
for(j in (i+1):(dim(A)[2])){
if(distance=='cosine') dist_matrix[j,i]<
我有一个数据集,X,即m x 2,以及三个向量存储在矩阵C = [c1'; c2'; c3']中,即3 x 2。我试图将我的代码矢量化,为X中的每个数据点找到C中最接近的向量(平方距离)。我想从C中的每个向量(行)中减去X中的每个向量(行),从而得到X元素和C元素之间差异的m x 6或3m x 2矩阵。我的当前实现一次在X中执行一行操作:
for i = 1:size(X, 1)
diffs = bsxfun(@minus, X(i,:), C); % gives a 3 x 2 matrix result
[~, idx(i)] = min(su
我正在使用模块hcluster从距离矩阵计算树状图。我的距离矩阵是生成的数组的数组,如下所示:
import hcluster
import numpy as np
mols = (..a list of molecules)
distMatrix = np.zeros((10, 10))
for i in range(0,10):
for j in range(0,10):
sim = OETanimoto(mols[i],mols[j]) # a function to calculate similarity between molecules
我必须构建一个函数,它先按行排序矩阵,然后按列排序,反之亦然,保留矩阵内部的值。矩阵是一个很大的矩阵,所以我使用的算法必须是nlogn算法。
我的结构如下:
typedef struct{
unsigned int line, column;
float value;}Matrix;
Matrix matrix[size_of_matrix*size_of_matrix];
static int numb_of_matrix; /*Whenever I ask the user to insert values to the matrix, I increase this number to
我在维基百科上读到过,理论听起来不错,但我不知道如何应用于实践。
我有一个像这样的小例子:
原始图像矩阵
1 2
3 4
如果我想把图像放大一倍,那么新的矩阵是
x x x x
x x x x
x x x x
x x x x
现在,有趣的部分是如何将原始矩阵中的旧值转移到新矩阵中,我打算这样做
1 x 2 x
x x x x
3 x 4 x
x x x x
然后对其应用双三次插值(此时只需忘记使用16个相邻像素,我没有足够的空间来演示如此大的矩阵)。
现在我的问题是:
我是否可以进行数据传输(从旧矩阵到新矩阵)?如果不是,它应该是什么样子?,,,新矩阵中x变量的值应该是多少?在我看来,这似乎是
请通过我对LSI (机械工程背景)的理解来理解我:
在LSI中执行SVD之后,有3个矩阵:
U,S,V转座。
U将单词与主题进行比较,S是衡量每个特征强度的一种方法。将主题与文档进行比较。
U dot S dot Vt
返回SVD之前的原始矩阵。没有做太多(没有)深度代数,似乎:
U dot S dot **Ut**
返回一项一项的矩阵,该矩阵提供了两个术语之间的比较。也就是说,一个术语与其他术语的关系,是一种比较词而不是成分的DSM (设计结构矩阵)。我可能完全错了,但我尝试了一个样本数据集,结果似乎是有意义的。这可能只是偏见(我想让它起作用,所以我看到了我想要的)。我不能发布结果,因为