小编Arc*_*ahi的帖子

如何修复 Octave 在 Ubuntu 中使用 Intel MKL 产生错误结果?

尽管英特尔 MKL 在 GNU Octave 中加快了计算速度,但当矩阵的大小很大时,结果有时(在 Xubuntu 20.04 中使用 Octave 5.2.0 测试)完全错误。这已在此处此处提及。

例如,这个要点显示了一个例子,Octave 和 Scilab 产生不同的结果,并且 Octave 的结果是错误的(它每次运行脚本时都会改变。Octave 使用 OpenBLAS 给出正确的结果)。

这是要点中的代码。

for a = 1:500
        for b = 1:500
                c(a,b) = sin(a + b^2);
        endfor
endfor

g = eig(c);

m = max(real(g))

%Correct result is ans =  16.915
%With MKL in Ubuntu 20.04, I get random numbers of order 10^5 - 10^6, which changes on every run

Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

octave blas intel-mkl

5
推荐指数
1
解决办法
154
查看次数

从 GNU Octave 中的字符串数组访问字符串

如何访问整个元素helloahoy八度?仅打印每个字符串中的第一个字符。

octave:1> s = ["hello";"ahoy"]
s =

hello
ahoy 

octave:2> s(1)
ans = h
octave:3> s(2)
ans = a
Run Code Online (Sandbox Code Playgroud)

string octave

4
推荐指数
1
解决办法
1678
查看次数

如何在Python中一次性乘以多个矩阵?

假设我有四个矩阵,abcd

在Python(使用numpy)中,我需要将result = np.matmul(np.matmul(np.matmul(a,b),c),d)它们相乘。

在 MATLAB/GNU Octave 中,我可以用更简单的方式将它们相乘result = a*b*c*d

有没有什么方法可以在Python中进行矩阵相乘,这样我就不必重复编写np.matmul避免嵌套括号?

python numpy matrix-multiplication

2
推荐指数
1
解决办法
1535
查看次数

标签 统计

octave ×2

blas ×1

intel-mkl ×1

matrix-multiplication ×1

numpy ×1

python ×1

string ×1