【发布时间】:2020-07-04 13:02:51
【问题描述】:
我正在尝试在 Matlab 中绘制表面 x^2*y^2+y^2*z^2+z^2*x^2=1。我对函数进行了矢量化,因为正如我在使用 Matlab 的微分方程课程中所学到的那样,这是一种很好的做法。但是,Matlab 给了我以下警告:
警告:函数在数组输入上的行为异常。改善 性能,正确矢量化您的函数以返回输出 与输入参数相同的大小和形状。
这是我的代码:
f = @(x,y,z) x.^2.*y.^2+y.^2.*z.^2+z.^2*x.^2-1;
fimplicit3(f)
我做错了什么?
以前所有关于 Matlab 矢量化的 StackOverflow 问题(例如Vectorize function evaluation in MATLAB)似乎都涉及 for 循环。
【问题讨论】:
-
检查你函数中的最后一个乘法,它仍然是
*而不是.* -
请注意
x.^2.*y.^2与(x.*y).^2相同,但后者更快,因为它只平方一次。
标签: matlab vectorization