2016-07-25 4 views
-2

私は特にNetlogoの "Flocking"モデルを扱っています。私が望むのは、エージェントを選択して、選択したエージェントの次の3つのパッチに対して他のエージェントが存在するかどうかを調べることです。エージェントの周りすべてをチェックして、マトリックス形式のデータを取得し、 excel/cvsファイル。NetlogoのパッチのマトリックスデータをExcelファイルに出力するには?

+0

あなたが実際に探していることは、やや不明です。 それぞれのカメは、その前にある3つのパッチを見てそこにあるものをファイルに出力しますか?または、半径3単位のすべてのパッチを見てそこにあるものを出力しますか?関心のある出力因子(密度、距離、サイズ、色)はどれくらいですか?あなたのマトリックスを何から構成したいですか?毎回の実行の終わりに、すべての亀について、すべての亀のために、すべての亀のためにこれをしたいですか?私たちがあなたを助けてくれるように指定してください。また、通常は、コード化の試行/再現性のある問題やコードの一部を使用することをお勧めします。 – Jesse001

+1

まず、間違いをおかけして申し訳ありません。はい、私は亀に3つのパッチを見せるが、半径方向ではなくマトリックス方式で見ることを望みます。私はちょうどブール値で、その行列に他のカメがあるかどうかを見たいだけです。カメがある場合と同様に、値は1でなければならず、値がない場合、値は行列の0でなければなりません。すべてのダニとすべてのカメのデータが必要です。これですべてがクリアされることを願っています。 –

答えて

1

残念ながら私はあなたのための決定的な答えを持っていないが、私はあなたが並べ替えの何かをしたいと思う想像:

globals 
[ output_matrix] 
patches-own 
    [occupied?] 
to setup 
clear-all 
reset-ticks 
    create-turtles 50 
    set output_matrix [] 
end 
to go 
    move 
    tick 
end 
to move 
    ask turtles [set heading random-float 361 forward random-float 2 ] 
    ask patches with [count turtles-here > 0] [set occupied? 1] 
    ask patches with [count turtles-here = 0] [set occupied? 0] 
    check_surroundings 
end 
to check_surroundings 
    ask turtles [ ifelse any? turtles-on patch-ahead 1 
    [set output_matrix lput 1 output_matrix] 
    [set output_matrix lput 0 output_matrix]] 
    ask turtles [ ifelse any? turtles-on patch-ahead 2 
    [set output_matrix lput 1 output_matrix] 
    [set output_matrix lput 0 output_matrix]] 
    ask turtles [ ifelse any? turtles-on patch-ahead 3 
    [set output_matrix lput 1 output_matrix] 
    [set output_matrix lput 0 output_matrix]] 
end 

あなたに2つのオプションを与えること。 1の場合、ビヘイビア空間を使用して、各パッチが占有されているかどうかを表す簡単な0または1でファイル(ビヘイビア空間で指定する)に完全なパッチリストを出力することができます。 2番目のオプションは、これが作成するoutput_matrixリストを使用することです(最終的なゲームが何であるかはわかりません)。これは、毎ティックごとに各カメの3つの0と1の系列を与えます(時間の経過とともに集計がどのようになっているかを見積もりたい場合は、これがより有用かもしれません)。

はまた

あなたには、いくつかのサンプルコードを生成する場合、私は確信しているが、コミュニティがさらにあなたを助けることができるようになります/ファイルクローズプリミティブ出力 - 印刷およびファイル・オープンに見てみたいことがあります。

0
globals [rpts] ;write your code to set global only once 

to test 
    ca 
    set rpts moore-offsets 3 
    ask n-of 50 patches [sprout 1 [set color red]] 
    ask one-of turtles [ 
    ask patches at-points rpts [set pcolor yellow] 
    print any? other turtles-on patches at-points rpts 
    ] 
end 

to-report moore-offsets [#n] ;includes center ... 
    let _result [] 
    let _xs n-values (1 + 2 * #n) [? - 3] 
    foreach _xs [ 
    let _y ? 
    foreach _xs [ 
     let _x ? 
     set _result lput (list _x _y) _result 
    ] 
    ] 
    report _result 
end 
関連する問題