不清楚如何矢量化此函数以消除Matlab中的fsurf警告

不清楚如何矢量化此函数以消除Matlab中的fsurf警告,matlab,function,plot,vectorization,Matlab,Function,Plot,Vectorization,要使用fsurf,需要对考虑中的函数进行适当的矢量化,这意味着使用元素操作,即数组操作 例如,此函数已正确矢量化: f=x.^2-2*x.*y+4*y.^2 现在,我的问题是:如何将函数a,b,c,d,e矢量化为常数 f=a+[b,c]*[x-d;y-e] 在这种情况下,我不能使用元素级乘法,即*,因为我需要该操作返回标量,而不是矩阵,所以使用*是正确的 虽然fsurf返回的绘图绝对正确,但我收到以下警告消息: 警告:函数对数组输入的行为异常。为了提高性能,请正确地对函数进行矢量化,以返回与输入

要使用fsurf,需要对考虑中的函数进行适当的矢量化,这意味着使用元素操作,即数组操作

例如,此函数已正确矢量化:

f=x.^2-2*x.*y+4*y.^2

现在,我的问题是:如何将函数a,b,c,d,e矢量化为常数

f=a+[b,c]*[x-d;y-e]

在这种情况下,我不能使用元素级乘法,即*,因为我需要该操作返回标量,而不是矩阵,所以使用*是正确的

虽然fsurf返回的绘图绝对正确,但我收到以下警告消息:

警告:函数对数组输入的行为异常。为了提高性能,请正确地对函数进行矢量化,以返回与输入参数大小和形状相同的输出


如何进行?

公式中的矩阵运算很难矢量化。抓起笔和纸,执行矩阵乘法:

f = a - b.*(d - x) - c.*(e - y)

只剩下带标量的乘法,易于矢量化。

谢谢!通过这样做,我实际上不需要。*。这对于fsurf来说已经很好了:a+b*x-d+c*y-eYou是对的,只有当你最终得到像x*y这样的东西时,.*才是必需的。在这里没关系。