我需要在Scilab中创建一个块三对角矩阵。更明确地说,我想设置一个M^2 X M^2矩阵,格式如下:
B C 0 ... 0 0
D B C 0 ... 0
0 D B C ... 0
0 ... ... ... ...
0 0 ... D B C
0 0 0 ... D B
其中B、C和D是M×M矩阵。
我知道如何在"sysdiag“函数的帮助下创建块对角矩阵,但我还没有找到任何参考资料来轻松创建块三对角矩阵。
顺便说一下,给定矩阵B,C和D,我知道如何创建上面的矩阵。
auxA = sysdiag(B,B
我试图用Python创建K MxN matrices,它存储在一个(M,N,K) numpy数组C中,由两个矩阵( A和B )组成,形状分别为(K, M)和(K,N)。第一个矩阵被计算为C0 = a0.T x b0,其中a0是A的第一行,b1是第一行B,第二个矩阵是C1 = a1.T x b0等等。
现在我用一个for循环来计算矩阵。
import numpy as np
A = np.random.random((10,800))
B = np.random.random((10,500))
C = np.zeros((800,500,10))
for k in range(10):
我有两个矩阵市场格式的稀疏矩阵文件:
row col val
1 1 3.0
1 2 1.0
2 3 2.0
etc...
目前,我已经将文件分成了6个数组:
row_A[], col_A[], val_A[], row_B[] …
它们分别包含行索引、列索引和值。
我想轻松地将这两个矩阵相乘,而不必首先将它们转换为密集矩阵格式。有没有这样做的算法?
我在Quora上找到了这个伪代码,但我不确定它是不是最好的实现,或者它将如何在C:中实现
multiply(A,B):
for r in A.rows:
for c in A.rows[r]:
fo
我有一个网站,教学生有限数学。
在这个网站上,我有一个计算器,可以进行组合和排列,现在我正在尝试包括一个矩阵计算器,它将对矩阵进行加、减、乘和逆矩阵运算。
我使用Javascript和西尔维斯特的库来做计算。我成功地创建了一个程序,它将接受用户输入到表单中的值并进行计算,但这只适用于特定大小的矩阵(4x4)。
我搞不懂的是,如何从表单中只获取非空的值,并从中创建一个矩阵,然后将这些值输出到结果表单中的相应字段中。
我正在使用的一些Sylvester方法
// create matrix from embedded array and assign to var A
var A = $M([
我有一个很大(500k X 500k)的稀疏矩阵。我想知道它的主要组成部分(实际上,即使只计算最大的PC也可以)。随机化的PCA效果很好,除了它本质上是寻找协方差矩阵的特征向量,而不是相关矩阵。使用大型稀疏矩阵的协方差矩阵找到PCA的软件包有什么想法吗?最好是在python中,尽管matlab和R也可以工作。
(作为参考,向提出了类似的问题,但方法涉及协方差矩阵)。
我想要计算向量,
S=A B u,
其中s和u是N维复向量,A是N×M复矩阵,B是M×N复矩阵。当A、B和u的元素表示为浮点数时,以下哪两种方法具有更好的准确性(更有效的数字)?
(1)先计算B。
首先做矩阵向量乘法,
Y=B u
然后,另一个矩阵向量乘法
S=A y
(2)先计算A、B。
首先做矩阵-矩阵乘法,
C=A B
然后,矩阵向量乘法
S=C U
有什么已知的一般规则吗?
顺便说一下,我知道方法(1)比方法(2)效率高得多。
我有一个在PHP中表示为数组的矩阵:
array(
array('a','b'), // a | b
array('c','d') // c | d
)
我有一个用类似方式表示的第二个矩阵(这里没有内部数组,但我不介意添加它们):
array(
'e', // e
'f' // f
)
我想要这样的组合:
array(
array('a','b',&
我真的很困惑。我找了很多教程,但找不到明确的答案。
A B B D
1 X x 5
2 x y 6
x 4
我想跨越这两个表。A,B,B,d是属性。
A B B D
1 X x 5
2 x x 5
1 X y 6
2 x y 6
1 X x 4
2 x x 4
按照笛卡尔的规则,这应该是正常的答案。横过所有的行。但我对同一栏B感到困惑。同一栏似乎是两次?
我试图用numPy广播计算Rij = Aij /Cij。如果矩阵大小不相同(n×n),也会引发异常。
我不太确定这是正确的,还是我应该做元素智慧或矩阵智慧。有人能告诉我怎么做吗?
A = [[(i+j)/2000 for i in range(500)] for j in range(500)]
B = [[(i-j)/2000 for i in range(500)] for j in range(500)]
C = [[((i+1)/(j+1))/2000 for i in range(500)] for j in range(500)]
def matrix_R(A,B,C):
我有一个df,有几个列的值为0或1。
a b c d e
1 0 0 0 0
0 1 0 1 0
0 1 0 1 0
1 0 1 0 1
我想要创建一个5乘5的矩阵,显示如果列中有1在同一行的总计数。我只想考虑1,在对角线情况下,它会自动地反映该列中的一行总数1。输出如下:
a b c d e
a 2 0 1 0 1
b 0 2 0 2 0
c 1 0 1 0 1
d 0 2 0 2 0
e 1 0 1 0 1
谢谢。
苏迪尔
我希望这不是一个重复的问题。我想用矩阵的形式计算向量之和的平方。例如,我有一个向量:
v = c(a, b, c, d)
我想要实现的是方程展开(a+b+c+d)^2 = a^2 + b^2 + c^2 + d^2 + 2ab + 2ac + 2ad + 2bc + 2bd + 2cd的矩阵形式:
a^2 ab ac ad
ab b^2 bc bd
ac bc c^2 cd
ad bd cd d^2
在r中是否有一个函数可以这样做,而不用手工写出它呢?
非常感谢你的帮助。