2016-04-24 4 views
0

誰かが私を助けることができる! 私はアナロジックを使います。人口(=株)があり、10の異なるグループに分割されています(年齢に依存しています)。私は私の構造にこれを使用したい。 私はすでに構造内にExcelテーブルを持っていますが、私はそれをどのように使用できるのかはわかりません。それとも、私が "tablefuntion"を使用する方が良いですか? これについての良いチュートリアルは見つかりませんでした。 1つの番号だけを持つ例があります。 など。在庫:開始値= 10000。 私は在庫が必要です:開始値=グループ1:50、グループ2:30、グループ3:20.データベースのためのテーブルを使用してAnylogicシステムモデリング、

誰かが私を助けることができますか? ありがとう!

+0

現在のモデルの外観や達成目標を明確にしてください。理想的にはいくつかのスクリーンショットで...理想的には、システムダイナミックスストックは1種類の「流体」(すなわち母集団)を取ることができます。 – Benjamin

+0

@Benjamin彼は配列株を使っていると思う。私の答えを見てください。 –

+0

ところで、あなたの質問のタイトルは少し誤解を招く/曖昧です。 「Excelデータを使用してAnyLogicアレイのストックを初期化する」のようなものが良いでしょうか? –

答えて

0

アレイのストックを使用しているように聞こえます。アレイの値は、AnyLogicの10値のディメンションです。

あなたが初期値のためEdit...ボタンを押した場合、あなたは彼らがなどv1は第一次元の代替の初期値であるJava表記{v1, v2, ..., v10}、で指定されていることがわかります(間違えやすいが、これはJava配列の表記法でありますと異なる)

Excelデータからこれらを初期化する簡単な方法はありません。 AnyLogic 7.2以降では、Excelの値をAnyLogicのデータベーステーブルに簡単に取得できますが、基本的なAnyLogicの変数やパラメータとは異なり、在庫の初期値を設定するクエリを設定するビジュアルウィザードはありません。

おそらく、ExcelワークシートをAnyLogicデータベーステーブルにインポートしてから、モデルのスタートアップコードで明示的に10個の値をクエリで設定してループすることをお勧めします。在庫のsetメソッド(関数)を使用して、各値(2つの引数を設定できます:設定する値と設定する代替次元の数)を設定します。

はテーブルとしてExcelワークシートをインポートする方法についてAnyLogicのヘルプDatabase --> Importing database tablesを参照してください。

はのは、あなたのテーブルが(などの寸法エントリー1、2、のためdouble値を与える)の列stock_name(値がためのものである株式の識別)、val1val2などでstock_valsと呼ばれているとしましょう。

その後のは、ご使用のアレイの在庫は、代替YOUNGMIDDLE_AGEDOLD( - 私はちょうどそれを簡単にするために3つの選択肢を使用する代替案1、2、3)とAgeRange次元で​​と呼ばれているとしましょう。そして、あなたがエントリー

"population", 100.0, 200.0, 300.0

を持って、あなたのテーブルに想定する次に、あなたの起動ロジックに次のコードを使用することができます。

stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val1), 1); 
stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val2), 2); 
stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val3), 3); 

AnyLogic Database --> Queryingヘルプは、このデータベース選択のJavaコードがどのように動作するかを示しています。

上記のコードは、よりエレガントに整えられますが、それは本質です。

関連する問題