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)
私がやろうとしているのは、マトリックスAを埋めることです
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)
基本的に、最後の 2 つのループはベクトルの反復に置き換える必要があります。私が達成するのは最初の行だけです。
A(1,:)= s(1)-si(1:n+1);
適切に反復する方法についてのヒントはありますか? 編集: for または while ループは使用できません。