有人可以用直观的方式解释strassen的矩阵乘法算法吗?我已经完成了(好了,试图通过)书中的解释和维基,但它没有点击楼上.网络上使用大量英语而非正式表示法等的任何链接也会有所帮助.是否有任何类比可以帮助我从头开始构建这个算法而不必记住它?
我有几个长度不等的向量,我想要cbind他们.我把矢量放到一个列表中,我试图结合使用do.call(cbind, ...):
nm <- list(1:8, 3:8, 1:5)
do.call(cbind, nm)
# [,1] [,2] [,3]
# [1,] 1 3 1
# [2,] 2 4 2
# [3,] 3 5 3
# [4,] 4 6 4
# [5,] 5 7 5
# [6,] 6 8 1
# [7,] 7 3 2
# [8,] 8 4 3
# Warning message:
# In (function (..., deparse.level = 1) :
# number of rows of result is not a multiple of vector …Run Code Online (Sandbox Code Playgroud) 我知道这是一个基本问题,但由于一些奇怪的原因,我无法找到答案.
我应该如何在整个数组,矩阵或数据帧上应用基本统计函数,如均值,中位数等,以获得唯一答案,而不是行或列上的向量
我正在寻找具有以下功能的Haskell线性代数库:
并具有以下属性:
Storable实例).我的元素是一个实例Num,另外可以计算乘法逆.元素在数学上形成有限域(2 256).这应该足以实现上述功能.Int,Double或类似的)类型.触摸元素时,至少有一个指针被解除引用Storable实例,所以库必须用Haskell编写)我已经非常努力地评估了看起来很有希望的一切(Hackage上的大多数库都直接表明它们不适合我).特别是我用以下方法编写了测试代码
我查看了更多库的代码和文档,但似乎没有什么能满足我的需求:-(.由于似乎什么都没有,我在GitHub上开始了一个项目,旨在开发这样一个库.当前状态非常简约,根本没有针对速度进行优化,只有最基本的功能才有测试,因此应该可以工作.但是,如果您有兴趣使用或帮助开发它:联系我(您将在我的网站上找到我的邮件地址)或发送拉取请求.
对于R,至少有两个稀疏矩阵包.我正在调查这些因为我正在使用太大而稀疏的数据集以适应具有密集表示的内存.我想要基本的线性代数例程,以及轻松编写C代码来操作它们的能力.哪个库最成熟,最好用?
到目前为止我发现了
有人有这方面的经验吗?
通过在RSeek.org上搜索一下,Matrix包似乎是最常提到的一个.我经常认为CRAN任务视图是相当权威的,而多变量任务视图提到了Matrix和SparseM.
所以转置矩阵的显而易见的方法是使用:
for( int i = 0; i < n; i++ )
for( int j = 0; j < n; j++ )
destination[j+i*n] = source[i+j*n];
Run Code Online (Sandbox Code Playgroud)
但是我想要一些能利用局部性和缓存阻塞的东西.我正在查找它并且找不到可以执行此操作的代码,但我被告知它应该是对原始的非常简单的修改.有任何想法吗?
编辑:我有一个2000x2000矩阵,我想知道如何使用两个for循环更改代码,基本上将矩阵拆分为我单独转置的块,比如2x2块或40x40块,并查看哪个块大小最有效.
编辑2:矩阵以列主要顺序存储,即对于矩阵
a1 a2
a3 a4
Run Code Online (Sandbox Code Playgroud)
存储为a1 a3 a2 a4.
Scipy有许多不同类型的稀疏矩阵.这些类型之间最重要的区别是什么,它们的预期用途有何不同?
我正在基于Matlab中的示例代码1在python中开发代码.代码的一部分使用稀疏矩阵 - 在Matlab中似乎有一个(恼人的)类型,我试图找出我应该在python中使用哪种类型2.
1:这是一堂课.大多数人都在使用Matlab进行项目,但我喜欢创造不必要的工作和混乱 - 显然.
2:这是一个学术问题:我使用" CSR "格式正常运行代码,但我很有兴趣知道最佳用法是什么.
我会尝试尽可能清楚,然后我将首先解释为什么我要将两个数组转换为矩阵.
要绘制投资组合与市场指数的表现,我需要一个像这种格式的数据结构:
[[portfolio_value1, index_value1]
[portfolio_value2, index_value2]]
Run Code Online (Sandbox Code Playgroud)
但我将数据作为两个独立的1-D阵列:
portfolio = [portfolio_value1, portfolio_value2, ...]
index = [index_value1, index_value2, ...]
Run Code Online (Sandbox Code Playgroud)
那么如何将第二个场景转换为第一个场景.我试图np.insert将第二个数组添加到我在python shell中的测试矩阵中,我的问题是将第一个数组转换为单个列矩阵.
如果没有命令性循环如何实现这一点的任何帮助将是伟大的.
我需要FIRST在表格中转换Excel矩阵LATER:
第一:
P1 P2 P3 P4
F1 X
F2 X X
F3 X X
F4 X X
Run Code Online (Sandbox Code Playgroud)
稍后:
F P VALUE
F1 P1 X
F1 P2
F1 P3
F1 P4
F2 P1 X
F2 P2 X
F2 P3
F2 P4
F3 P1
F3 P2 X
F3 P3
F3 P4 X
F4 P1
F4 P2 X
F4 P3 X
F4 P4
Run Code Online (Sandbox Code Playgroud) 我正在尝试解决共同出现矩阵的问题.我有一个事务和项目的数据文件,我想看到一起显示项目的事务数量的矩阵.
我是R编程的新手,我很乐意找到R所有的快捷方式,而不是创建特定的循环(我以前使用的是C年前,现在只坚持使用Excel宏和SPSS).我已经检查过这里的解决方案,但是没有找到一个有效的方法(最接近的是这里给出的解决方案:使用SAC的共生矩阵? - 但是当我使用projection_tm时它产生了一条错误信息,我怀疑cbind不是'在我的案例中成功.
基本上我有一个包含以下内容的表:
TrxID Items Quant
Trx1 A 3
Trx1 B 1
Trx1 C 1
Trx2 E 3
Trx2 B 1
Trx3 B 1
Trx3 C 4
Trx4 D 1
Trx4 E 1
Trx4 A 1
Trx5 F 5
Trx5 B 3
Trx5 C 2
Trx5 D 1, etc.
Run Code Online (Sandbox Code Playgroud)
我想创建类似的东西:
A B C D E F
A 0 1 1 0 1 1
B 1 0 3 1 1 0
C 1 3 0 1 0 0 …Run Code Online (Sandbox Code Playgroud)