3

次の条件に従って、MATLAB で関数を定義しようとしています。

If t<0 
     f(t,x,y)=t*(x/y)+1.
else
     f(t,x,y)=-t*(x/y)+1.
end

1 つの変数で区分関数を定義する方法を見つけましたが、ここでは 3 つの変数があります。MATLAB でそのような関数を定義する方法はありますか?

4

2 に答える 2

1

以下は、上記の方程式を使用して無名関数を作成します

f = @(t,x,y) -abs(t) * (x/y) + 1;

次に、通常の関数のように使用できます。

y = f(tData,xData,yData);

それよりも複雑な場合は、サブ関数ネストされた関数、またはプライベート関数である必要があります。

于 2012-01-26T19:42:00.547 に答える
1

私の理解が正しければ、3 秒実行する必要がありますif。2つの変数に対してそれを行う方法を示します。

If t<0 
  if x<0
     %Case 1
  else
     %Case 2           
  end
else
  if x<0
     %Case 3
  else
     %Case 4
  end

end

または、2^3=8 if- elseifs を使用できます。または、2 変数の場合 - 2^2 = 4.

 if t<0 && x<0
     %Case 1      
 elseif t<0 && x>0
     %Case 2     
 elseif t>0 && x>0
     %Case 3
 else
     %Case 4
 end
于 2012-01-26T16:10:21.583 に答える