Dex*_*ers 2 python matlab matrix file-processing
我在MATLAB中实现了代码,这些代码在包含数字数据和某些字符串的216x216矩阵上运行.我在这些矩阵上做的操作大多是像某个阈值以上的滤波器矩阵,找到高于某个值的所有矩阵索引,找到上面的值列表,然后找到它们之间的连续差异,一些字符串替换操作.做矩阵点产品等我需要访问数千个文件来生成这些矩阵(我在MATLAB中使用dlmread).
现在我需要用任何其他语言实现上述项目,这些语言通常与操作系统捆绑在一起,例如Perl,c或python或开源语言.
我做了一个简短的搜索,发现python是一个很好的研究工具.python是否具有一些用于矩阵运算的MATLAB等价物(比如将文件直接读入数组,查找,dlmwrite等)
因为我的代码已经有很多没有这些MATLAB函数的循环,所以代码会变得更加混乱和难以维护.
或者你能否指出任何其他选择.我熟悉小Perl但不熟悉python或R.
以下是有关您帖子的一些示例:
In [5]: import scipy
In [6]: X = scipy.randn(3,3)
In [7]: X
Out[7]:
array([[-1.16525755, 0.04875437, -0.91006082],
[ 0.00703527, 0.21585977, 0.75102583],
[ 1.12739755, 1.12907917, -2.02611163]])
In [8]: X>0
Out[8]:
array([[False, True, False],
[ True, True, True],
[ True, True, False]], dtype=bool)
In [9]: scipy.where(X>0)
Out[9]: (array([0, 1, 1, 1, 2, 2]), array([1, 0, 1, 2, 0, 1]))
In [10]: X[X>0] = 99
In [11]: X
Out[11]:
array([[ -1.16525755, 99. , -0.91006082],
[ 99. , 99. , 99. ],
[ 99. , 99. , -2.02611163]])
In [12]: Y = scipy.randn(3,2)
In [13]: scipy.dot(X, Y)
Out[13]:
array([[-124.41803568, 118.42995937],
[-368.08354405, 199.67131528],
[-190.13730231, 161.54715769]])
Run Code Online (Sandbox Code Playgroud)
(无耻的插件:我曾经在Python和Matlab之间做过的比较.)
| 归档时间: |
|
| 查看次数: |
1762 次 |
| 最近记录: |