我正在使用Matlab的符号工具箱进行测试。想知道为什么即使仅使用符号数字进行计算时它仍然如此缓慢。为了测试,我写了这个
syms x
x = subs(x,1);
a = 1;
tic
for i=1:10000
z_sym = x + 1;
end
toc
tic
for i=1:10000
z_num = a + 1;
end
toc
Run Code Online (Sandbox Code Playgroud)
对于第一个循环,它说Elapsed time is 4.358483 seconds.,第二个循环Elapsed time is 0.000029 seconds.。我知道使用subs函数可以给我x = 1,但仍然很典型sym,我可以通过强制转换将其转换以加快速度。但这就是重点。
为什么计算1 + 1符号要比计算数字花费15000倍的时间。是什么让Matlab减速这么难?