我正在将Matlab代码翻译成Python环境,现在在Matlab中使用稀疏函数进行处理。我知道我们有一个叫做scipy.sparse
的库,其中一个就是csc_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
然而,当我检查从scipy.sparse
库计算的那些时,它们与Matlab中的不匹配。
我有1693872个大数据,叫做Ig
(1693872,),Jg
(1693872,)和K_dummy
(1693872,),其中K_dummy(Ig(i),Jg(i)) = K_dummy(i)
我已经用Matlab检查了所有变量,Ig
,Jg
,K_dummy
,并且完全匹配。你们有没有想过我必须考虑其他方面?
以下是我在python和Matlab中的示例代码,分别作为参考:
K = csc_matrix((K_dummy.flatten('F'),(Ig.flatten('F')-1,Jg.flatten('F')-1)),shape=(noDofs,noDofs))
K = sparse(Ig(:),Jg(:),K_dummy_python(:),noDofs,noDofs);
其中K_dummy
是(18,18,5228)数组,Ig
是(3245228)数组,Jg
是(3245228)数组,noDofs
是一个整型变量,如42442
八度:
在{}和{}和{}的{}中:
看看稀疏矩阵:
并重新创建矩阵
使用较新的
numpy/scipy
时,我必须将索引转换为整数(他们对浮点数作为索引越来越挑剔)。但扁平化似乎效果不错在所有这些变量中都添加了一个维度,我懒得重新创建它。正确地将其展平可能会导致您的问题
相关问题 更多 >
编程相关推荐