遺伝的アルゴリズムを使用して約 10 個のパラメーターを最適化しようとしています。メイン関数内のパラメーターの中間値を別の関数に渡す必要があります。これは基本的に、微分方程式の係数としてパラメーターを使用して、線形 ODE のシステムの ODE ソルバーです。次に、ODE の解を、最小化しようとしているメイン関数に戻します。変数をグローバルとして宣言しようとしましたが、役に立たないようです。2つの関数間で変数を渡す最善の方法についてアドバイスしてください。
質問する
310 次
2 に答える
0
これはおそらくより簡単でより「標準的」です...
yourFunction.m
function [v1 v2] = yourFunction(v1,v2)
v1 = 13;
v2 = 22;
end
そして、これがあなたがそれをどのように使うかです...
yourFunctionを使用する
>> v1 = 1;
>> v2 = 2;
>> [v1 v2] = yourFunction(v1,v2);
>> v1
>> 13
>> v2
>> 22
于 2012-04-28T06:40:31.807 に答える
0
これが最善の方法かどうかはわかりませんが、うまくいくはずだと思います。それらをハンドル クラスにラップして、それをオブジェクトとして渡すことができます。
yourClass.m
classdef yourClass < handle
properties
v1;
v2;
end
end
次に、呼び出す関数で...(クラスのメソッドにすることもできます)
yourFunction.m
function yourFunction( p1 )
p1.v1 = 21;
p1.v2 = 22;
end
だから、あなたはそれをこのように使うことができます...
>> o = yourClass();
>> o.v1 = 1;
>> o.v2 = 2;
>> o
o =
yourClass handle
Properties:
v1: 1
v2: 2
Methods, Events, Superclasses
>> yourFunction(o);
>> o
o =
yourClass handle
Properties:
v1: 21
v2: 22
Methods, Events, Superclasses
于 2012-04-28T06:07:55.707 に答える