gnuplot シェル変数の置換と配列

gnuplot シェル変数の置換と配列

gnuplotコマンドでシェル変数を使用する必要があり、ここではドキュメントスタイルを使用しました。また、gnuplotコードでループを使用する必要があります。これらの両方が機能しています。

今、私はgnuplot forループのインデックスを使ってシェル配列変数にアクセスしたいと思います。私が一日中閉じ込められていた場所がまさにここでした。

私は次のようなものがあります:

for ((i=0; i<=10; i++))
do
var[$i] = i*10
done

gnuplot<<EOF
do for [j=1:10]{
#need to access ${var[j]} somehow
val=sprintf("${var[%d]", j) ##doesn't work
}
EOF

${var[1]} などの個人アクセスが有効です。バックティックおよび/またはexprを使用する必要があるかもしれませんが、わかりません。

ベストアンサー1

ここで構文を混同しています。

シェルは${var[%d]シェル変数と少し似ているようですが、そうではありません。あなたは試す必要があります

cat <<EOF
...
EOF

デバッグし、正確に何が起こっているかを確認してください。私の考えでは、あなたが望むものはもっと似ていると思います。

for ((i=0; i<=10; i++))
do
var[$i] = i*10
done

gnuplot<<EOF
values="${var[*]}"
do for [j in values] {
#need to access ${var[j]} somehow
val=sprintf("%d", j) ##access part of the array directly
}
EOF

おすすめ記事