我正在尝试替换 Matlab 中的 for 循环。
function A=ansatz(s,p,n)
si(1:n+1)=2*((1:n+1)-1)/n-1;
A(1,:)= s';
for j=1:n+1
for i=1:n+1
A(j,i)=s(j)-si(i);
end
end
A=ansatz([-1,-0.9,-0.7,0.6,1],2,4)
我想做的是用
s(1)-si(1) s(1)-si(2) ... s(1)-si(n+1)
s(2)-si(1) s(2)-si(2) ... s(2)-si(n+1)
s(n+1)-si(1) s(n+1)-si(2) ... s(n+1)-si(n+1)
基本上最后两个循环必须用向量迭代替换。我完成的只是第一行。
A(1,:)= s(1)-si(1:n+1);
有人对如何正确迭代有提示吗?编辑:不能使用 for 或 while 循环。