2016-12-20 6 views
0

私はn x 1マトリックスを持っています。マトリックス内のシフト位置

[[ 10 ] 
[ 5 ] 
[ 2 ] 
[ 3 ] 
[ 1 ] 
[ 5 ]] 

からに(:私はこの方法で位置0,0の要素を追加し(最後の要素を失う)すべての要素の位置を「ずらす」とする方法を見つけようとしています位置0,0)

[[ 2 ] 
[ 10 ] 
[ 5 ] 
[ 2 ] 
[ 3 ] 
[ 1 ]] 

に新しい要素を追加すること2私は解決策にかなり近いが、私は、ネストされたリストに要素を追加する方法がわかりません。

;initial matrix 
set mymatrix matrix:from-column-list [[10 5 2 3 1 5]] 

;temp 
let list matrix:to-column-list mymatrix 


let tmplist matrix:to-column-list states 

; ERROR here: the result of fput is [2[10 5 2 3 1 5]] 
set tmplist fput 2 tmplist 

;new matrix 
matrix:set-column mymatrix 0 tmplist 

EDIT:私は確かに私のニーズのために行列が過剰であることに気づきました。私は純粋なnetlogoリストへの切り替えを解き、map-reduceで自分のビジネスをやり遂げました。

+0

リストではなく行列を維持する理由を説明できますか?あなたの目標は何ですか?あなたは、データ構造の単純な必要性を不必要なコードの複雑さに変えているようです。 – Alan

+0

この操作の後、私はこのベクトルに別のベクトル( 'matrix:times-element-wise')を掛けなければなりません。行列はこの用法では便利です。 – alfredopacino

+0

私の質問は立っています。あなたが繰り返しデータを調整しているなら、あなたはこの本のためにリストを使うべきです。必要に応じて変換することができます。しかし、あなたの乗算が実際にあなたが記述している単なる要素の乗算であれば、必要なようには聞こえません。下記参照。 – Alan

答えて

1

基本的に1次元のオブジェクトの要素単位の乗算が必要な場合は、mapを使用してください。

例:(map * [1 2] [3 4])レポート[3 8]

これで、リストを使って簿記を行うことができます。これははるかに簡単です。

何らかの理由で宣言していないにもかかわらず、実際に行列演算が必要な場合でも、あなたが記述した簿記のリストを使用し、必要なときに変換するのはほぼ確実です。

関連する問題