。
matlabfunction.
を使ってmatlab®关关ハンドル生成〖。また,シンボリックシンボリックのに,シンボリック式のにに。またmatlabfunction.
。符号数学工具箱™关关节ライセンスがあるかどうを问いんんどうを问いん。
matlabfunction.
は,任意のシンボリック式から关键ハンドルを生成でき。
syms x y r = sqrt(x ^ 2 + y ^ 2);ht = matlabfunction(tanh(r))
ht = function_handle with%:@(x,y)tanh(sqrt(x。^ 2 + y。^ 2))
この关节,数码的な计算に。
HT(.5,.5)
ans = 0.6089.
关键词,通讯〖matlab〗。以を渡すます。
cc = [.5,3];dd = [-.5,.5];HT(CC,DD)
ans = 0.6089 0.9954
ヒント
一道のシンボリック式はMATLAB关键词关键词表すません。matlabfunction.
はこれらのシンボリック式をできませんが,警告を表示しますます。これらの式によってますの。これらの式によって定义のののが行わ可性あるある,常に変换结果をし,结果として得られチェックし,结果として得たチェックし,结果として得たチェックしを行て结果を确认します。
matlabfunction.
は,シンボリックシンボリック式からから入入をアルファベット顺に生成ししそのその,关关ハンドル生成の関数ハンドルではX
がy
より先に书架れいいます。
ht = @(x,y)tanh((x。^ 2 + y。^ 2)。^(1./2))
関数ハンドルでの入力変数の順序を指定するには,オプションvars.
をベクトルベクトルの,シンボリック配列またはシンボリックのし渡すこと示しますしますますます。
方程x y z r =√(x^2 + 3*y^2 + 5*z^2);ht1 = matlabFunction(tanh(r), 'vars', [y x z]))
ht1 = function_handle with%:@(y,x,z)tanh(sqrt(x。^ 2 + y。^ 2. * 3.0 + z。^ 2. * 5.0))
ht2 = matlabfunction(tanh(r),'vars',{'x','y','z'})
ht2 = function_handle具有值:@(x,y,z)tanh(sqrt(x。^ 2 + y。^ 2. * 3.0 + z. ^ 2. * 5.0))
ht3 = matlabfunction(tanh(r),'vars',{'x',[Y Z]})
ht3 = function_handle with value:@(x,in2)tanh(sqrt(x。^ 2 + In2(:,1)。^ 2. * 3.0 + In2(:,2)。^ 2. * 5.0))
シンボリック式からは,关键ハンドルハンドルのほか,ファイルファイル生成するもます。ファイル名を指定にはは,文件
ファイル名またはファイルのパス含むのパスを渡しますますファイルパスを指定しないないないはははないは场はははははは场は场はmatlabfunction.
によってこのファイルが现ー现にに作品成され。
次の例では,倍精度の入力T.
那X
那y
に対して,シンボリック行列F
のの値を计算计算するが生成されます。
syms x y t z =(x ^ 3 - tan(y))/(x ^ 3 + tan(y));w = z /(1 + t ^ 2);f = [w,(1 + t ^ 2)* x / y;(1 + T ^ 2)* X / Y,3 * Z - 1];matlabfunction(f,'文件','testmatrix.m')
ファイルtestmatrix.m.
は,以下のコードをます。
函数f = testmatrix(t,x,y)%testmatrix%f = testmatrix(t,x,y)t2 = x。^ 2;t3 = tan(y);t4 = t2。* x;t5 = t。^ 2;t6 = t5 + 1;t7 = 1./y;t8 = t6。* t7。* x;T9 = T3 + T4;t10 = 1./t9;f = [ - (t10。*(t3-t4))./ t6,t8; t8,- t10.*(3.*t3 - 3.*t2.*x) - 1];
matlabfunction.
は,多重の中间数を生成します。これこれ,“最最适化されたたとと呼ばれれ.matlabによって生成さ中间数量は,小文字のT.
に自动生成さ番号を付けたもので,たとえばt32
などです。中间数量は,中间式(F
の计算における,T4.
那T6.
那T8.
那T9.
那T10
)を再利用するする,结果,のコードがため,结果式短くなる,コードコードが読みやすくなりなり。
入力量分数のの顺序,アルファベット顺を変更するに,vars.
オプションオプション使使。例の続き,
matlabfunction(f,'文件'那'testmatrix.m'那'vars',[x y t])
は,入力分数のが异なる点别は前前ファイルファイルと等価等価なファイルをファイルししをししし
函数F = testMatrix(x,y,t)…
既定既定の力数目は,matlabfunction.
たとえば呼び出すときに使ですととです。たとえば,幂数F
をを用してmatlabfunction.
を呼び出すと
syms x y t z =(x ^ 3 - tan(y))/(x ^ 3 + tan(y));w = z /(1 + t ^ 2);f = [w,(1 + t ^ 2)* x / y;(1 + T ^ 2)* X / Y,3 * Z - 1];matlabfunction(f,'file','testmatrix.m','vars',[x y t])
生成さされる力量変名前もF
ににます。
函数F = testMatrix(x,y,t)…
个々のの数でなく式を使使使matlabfunction.
を呼び出すと
syms x y t z =(x ^ 3 - tan(y))/(x ^ 3 + tan(y));w = z /(1 + t ^ 2);f = [w,(1 + t ^ 2)* x / y;(1 + T ^ 2)* X / Y,3 * Z - 1];matllabfunction(w + z + f,'file','testmatrix.m',...'vars',[x y t])
出去
に番号を付けたもの,例は次のとおり。函数out1 = testmatrix(x,y,t)...
输出
オプションオプション使使。
Syms x y z r = x ^ 2 + y ^ 2 + z ^ 2;q = x ^ 2 - y ^ 2 - z ^ 2;f = matlabfunction(r,q,'文件','new_function',...'输出',{'name1','name2'})
生成された关键词,结果として名称1
と名称2.
を返します。
函数[name1,name2] = new_function(x,y,z)...