矢量化分段二次插值函数

3个视图(过去30天)
苏延忠
苏延忠 2021年8月11日
回答: 达洛瓦 2021年8月20日
我正在努力实现以下代码的矢量化。你能帮帮我吗?
作用v=polyinterp(x,y,u)
n=长度(x);
v=零(尺寸(u));
对于k=1:n
w=个(尺寸(u));
对于j=[1:k-1k+1:n]
w=(u-x(j))/(x(k)-x(j)).*w;
终止
v=v+w*y(k);
终止
终止
2评论
苏延忠
苏延忠 2021年8月11日
谢谢你的评论!即使这是一个更好的代码,我想知道什么是垂直版本。

登录以发表评论。

答复(1)

达洛瓦
达洛瓦 2021年8月20日
这是矢量化版本(未测试)
xkj0=x-x';
xkj0=xkj0.*眼睛(大小(xkj0))+眼睛(大小(xkj0));%使对角线元素全部为1(除以零)
Xkj=repmat(xkj0,[1 1长度(u)]);%三维差分矩阵xk-xj
U=repmat(重塑(U,1,1,[]),长度(x)*[1]);%三维矩阵u
X=repmat(X(:),1,长度(X),3);%三维矩阵x
W=(U-X)。/Xkj;
Y=repmat(Y(:),1,长度(Y),3);%三维矩阵y
温度=产品(W.*Y,2);%不知道乘法的方向(行?列?)
v=总和(温度,1);%对行(可能是列)求和?

标签

s manbetx 845


释放

R2020a

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!