アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミングを始めたばかりです。

Cygwin環境でPerlを行っています。計算プログラムをPerlで書いています。

下に示すように、計算プログラムの中にデータを記入し、そのデータを処理することは出来たのですが、外部のファイルを読みそのデータを処理する方法が分かりません。

# y = ax + bを求める
@x=(1,2,3);
@y=(1,4,9);
for(<stdin>){
for($i=0;$i<$n;$i++){
$A = $A + ($y[$i] * $y[$i]);
$B = $B + ($x[$i] * $x[$i]);
  ・
  ・
  ・
$a=・・・
$b=・・・
print("a=$a,b=$b");

open (IN, $file) or die "$!"でcsvファイルに記載されてある数値をCygwin上で実行することは出来ました。

作成したプログラムとcsvファイルをCygwinで入力して、入力したcsvファイルのデータを処理(直線近似して傾きを求めたりなど)したいのですが、どうすればよいのでしょうか。

よろしくお願いします。

A 回答 (2件)

 自分はPerlを書かないので直接の回答ではないです(なんとなく、コードの意味はわかりますが)。



 まず「Perlでのファイル処理方法について 」では、カテ違いと思われて、回答が付きにくいです。表題を変えて、再質問する事をお奨めします。

 次にPerlを自由自在に読める人も、少なくともここには余りいないと思います。(数学的)状況を整理し、ふつうの言葉で質問する事もあ奨めします。

 あるいはPerlには、「直線近似ライブラリ」などがあるのかも知れませんね。そうであってもなくても最初に、メニューの、

  [カテゴリ]⇒[[技術者向け]コンピューター]⇒[プログラミング]⇒[Perl]

の板に同じ質問を投げてみるのは、悪くないと思います。Perlを自由自在に読める人がいる訳ですから(^^)。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

もう少し質問内容を整理してから、再度質問してみます。

お礼日時:2012/09/27 23:41

> 作成したプログラムとcsvファイルをCygwinで入力して、入力したcsvファイルのデータを処理(直線近似して傾きを求めたりなど)したい



というのが、どんな流れで何をしたいのか、今一つはっきりしません。
もうすこし内容を整理してください。
・「Cygwinで入力」ってどんな入力のことを言ってるのですか?
・ 「for(<stdin>){」ってありますが、このループはどこまでの繰り返しなんですか?
・「open (IN, $file) or die "$!"でcsvファイルに記載されてある数値をCygwin上で実行することは出来ました」
の「Cygwin上で実行」ってなんですか?openはただファイルを読み書きできるようにするだけです。
・数値が読み込めたのなら、「@x=(1,2,3);@y=(1,4,9);」と同様の状態になるように、リスト@x,@yに値を追加するだけではないでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。説明がごちゃごちゃでわかりにくかったです。

for(<stdin>){  の部分の記述は誤りでした。

質問内容に記述したパールファイル(.pl)内に
@x=(1,2,3);
@y=(1,4,9);
のように記載すると、データが変わるたびにファイル内の数値を入れ替えないといけないと思うのですが、cygwinのウィンドウに、

$ ./lesson.pl 10 <data1.csv

のように入力しEnterすると、ファイル内の数値を入れ替えないで指定したファイル(ここではdata1.csv)のデータが処理されると思うのですが、その場合パールファイルをどのように記述すればよいのでしょうか。という質問でした。

お礼日時:2012/09/28 00:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!