13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MATLABで競艇の解析を始めよう(とりあえずデータの取得まで)

Last updated at Posted at 2019-08-06

競艇の解析をやってみよう。

競艇って6艇しかいないし、データは無料で大量にあるし、夏は涼しそうだし、うまくいけば儲かるし(失敗したら損するし・・・)、競馬とか競輪よりも解析にちょうどいい題材な気がする。
あとは MATLAB を使えばデータの統計解析とか可視化とか、いろんな学習まで全部できちゃいそうな気がするので、勉強ついでにやってみよう。

おっと、競艇って古い呼び方ですね。今はボートレースですね。

まずはダウンロード

まずはデータを取得しないと始まらないので、ボートレースのサイトから力技で取ってこよう。

2019年8月1日だとすると、出走表がここにあって、
http://www1.mbrace.or.jp/od2/B/201908/b190801.lzh

結果がここにあるみたい。
http://www1.mbrace.or.jp/od2/K/201908/k190801.lzh

MATLABで取る場合、こんな感じでブラウザー頼りの web コマンドを実行すればいいですね。


url = "http://www1.mbrace.or.jp/od2/K/201908/k190801.lzh";
web(url,'-browser')

あとは、ルールは /B/YYYYmm/bYYmmDD.lzh なので、既に同じファイルがあったら if exist --- で飛ばしたりしてループさせてしまおう。とりあえず3日分くらい。

since = "20190801";
to = "20190803";
for ix = datenum(since,'yyyymmdd'):datenum(to,'yyyymmdd')
    if exist(['K',datestr(ix,'yymmdd'),'.TXT']) ~= 2
        url = "http://www1.mbrace.or.jp/od2/K/"+datestr(ix,'yyyymm')+"/k"+datestr(ix,'yymmdd')+".lzh";
        web(url,'-browser')
    end
    if exist(['B',datestr(ix,'yymmdd'),'.TXT']) ~= 2
        url = "http://www1.mbrace.or.jp/od2/B/"+datestr(ix,'yyyymm')+"/b"+datestr(ix,'yymmdd')+".lzh";
        web(url,'-browser')
    end
end

ブラウザーがピカピカするけど大丈夫そう!

LZH を展開しよう

次の悩みは lzh っていう拡張子ですが、MATLABだとデフォルトで展開できない圧縮形式なので、Lhaplus とかインストールしておきましょう。デフォルトだと C:\Program Files (x86)\Lhaplus\Lhaplus.exe にインストールされるので、dos コマンドで実行しよう。

ウィンドウズの downloads フォルダーに入ってれば以下のコマンドで解凍して、適当な作業フォルダーにコピー。(例えば C:\work\boat )

%% ダウンロードしたもの(lzh)を C:\work\boat に展開
dl = [getenv('USERPROFILE'),'\Downloads\'];
for ix = datenum(since,'yyyymmdd'):datenum(to,'yyyymmdd')
    if exist(['K',datestr(ix,'yymmdd'),'.TXT']) ~= 2
        zipname = ['k',datestr(ix,'yymmdd'),'.lzh'];
        dos(['"C:\Program Files (x86)\Lhaplus\Lhaplus.exe" /o:C:\work\boat ',dl,zipname,' &']);
    end
    if exist(['B',datestr(ix,'yymmdd'),'.TXT']) ~= 2
        zipname = ['b',datestr(ix,'yymmdd'),'.lzh'];
        dos(['"C:\Program Files (x86)\Lhaplus\Lhaplus.exe" /o:C:\work\boat ',dl,zipname,' &']);
    end
end

LZH の展開のたびに確認ウィンドウとか音とかが出る場合、出ないように Lhaplus の設定をしておくといいですね。うまくいったら数ヶ月分くらいダウンロードしてみよう。

とりあえずデータの取得までできました。

続きに興味のある人がいたら「いいね」で教えてね。(いいね中毒)

→ 2番目の記事
→ 3番目の記事
→ 4番目の記事

を書いたよ。

13
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?