MATLAB:为什么符号替换这么慢,更快的替代方案是什么?

标签 matlab

在我的机器上,以下代码:

for i=1:200
    1+2+5;
end;

在 0.000180 秒后运行。

现在,这段代码:

syms x y z
f(x,y,z) = x + y+z;

for i=1:200
    f(1,2,5);
end;

慢得多(6.193909 秒)。

对于我的代码,我需要编写几个复杂的 3 变量函数的导数,然后插入给定域中的所有整数点。能够进行符号微分然后插入会有很大帮助,但这看起来非常慢。

除了手动完成所有操作(手动编写完整的导数)之外,还有其他选择吗?

最佳答案

您可以使用 matlabFunction加速计算:

syms x y z
f(x,y,z) = x + y+z;
h= matlabFunction(f);
for i=1:200
    h(1,2,5);
end;

关于MATLAB:为什么符号替换这么慢,更快的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39439312/

相关文章:

arrays - MATLAB:将行追加到数组而不处理整个数组

matlab - 在 matlab 中绘制 2d 矩阵的 3d

algorithm - 如何在 MATLAB 中表示簇?

matlab - 查找稀疏矩阵中的行最小值

Matlab绘图去除刻度线

matlab - 通过 Matlab 中的另一个结构更新结构

MATLAB 的 glmfit 与 fitglm

image - 如何在 MATLAB 中锁定图像尺寸

matlab - 在 MATLAB/Octave 中绘制 3D 矩阵切片的值

matlab - 如何在matlab中压缩目录同时排除文件/文件夹