0

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 ループは使用できません。

4

1 に答える 1