0

遺伝的アルゴリズムを使用して約 10 個のパラメーターを最適化しようとしています。メイン関数内のパラメーターの中間値を別の関数に渡す必要があります。これは基本的に、微分方程式の係数としてパラメーターを使用して、線形 ODE のシステムの ODE ソルバーです。次に、ODE の解を、最小化しようとしているメイン関数に戻します。変数をグローバルとして宣言しようとしましたが、役に立たないようです。2つの関数間で変数を渡す最善の方法についてアドバイスしてください。

4

2 に答える 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 に答える