プロが教えるわが家の防犯対策術!

研究のデータ整理に関して助けてください。
現在の研究で一度の実験でCSVファイル100~1000個のデータ量を取得します。
その後、全データを平均した値を必要としています。
今は、ファイル1つずつをexcelにコピー→貼 り付けをして最後に平均計算をして算出していますが、貼り付けだけで時間がかかってしまいます。
そこで、C言語やMATLAB等で自動に計算をさせることは可能でしょうか?
もしよかったらC++などでのプログラムも教えて頂けると助かります。
ちなみに一つのファイルには3列、50000行のデータ量でこのファイルが100個以上ある現状です。

質問者からの補足コメント

  • うーん・・・

    各列ごとの平均を求めたいです。

    連結させる方法だと下にそのまま結合されてしまったので、イメージ的には横にそのまま貼り付けていけると助かります。

      補足日時:2016/10/02 17:58

A 回答 (4件)

calc.vbs ←空ファイル


data ←フォルダ

動作環境はWindows。
あるフォルダに上記ファイル、フォルダを作成。
dataフォルダ内にcsvファイル群を配置。
cals.vbsに以下ソースを貼り付け。
calc.vbsをダブルクリックすると、結果ダイアログが出る。

簡単な動作確認は実施済み。c,matlabとあったが、お手軽なvbsで
勝手に作った。
当方気軽に作っており、使い方、改造等、質問・要望は受け付けない所存。
色々と改造したい場合は自身で解析、改造されよ。
いじょう。

--------------------------------------(切り取り線)------------------------------------------
option explicit


dim fso
set fso = createObject("Scripting.FileSystemObject")

dim folder
set folder = fso.getFolder(".\data")

Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")

Dim objFile

dim col1
dim col2
dim col3

col1 = 0
col2 = 0
col3 = 0

dim num
num = 0

dim file
for each file in folder.files
Set objFile = fso.OpenTextFile(objWshShell.CurrentDirectory + "\data\" + file.name)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
dim d
d = split(objFile.ReadLine, ",")
col1 = col1 + cdbl(d(0))
col2 = col2 + cdbl(d(1))
col3 = col3 + cdbl(d(2))
num = num + 1
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
next

WScript.Echo "列1平均:" + cstr(col1/num) + vbnewline + "列2平均:" + cstr(col2/num) + vbnewline + "列3平均:" + cstr(col3/num)
--------------------------------------(切り取り線)------------------------------------------
    • good
    • 0

CSVファイルはダブルクリックすればExcelが自動的に立あがります。

アアベレージ関数、個数を数える関数を使えばすぐできるはずです。
時間がかかるのはおかしいです。
1日もかからない仕事と思いますが・・・?

C言語でやるなら自習でプログラムを組むなら
1ヶ月ぐらいはかかると思います。
    • good
    • 0

http://jp.mathworks.com/help/matlab/ref/csvread. …
MATLABにはCSVファイルを読み込む機能があるので、
CSV読み取り
→読み取った行列を、集計処理に都合のいいように並び換えたり抽出したり
とできます。


C言語の方は、現在こんなレベルの質問する程度の技術なら、Excelで手で貼り付けとやっている方がまだ早く処理できます。
    • good
    • 0

何故C?



Excel + VBA でもできるし、Java とかでもできます。
何故難行苦行のCでやりますかね? やればできますけど(^^;

Matlab は持ってないのでパス。
    • good
    • 0

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