数値データかどうかのチェック
モチベーション
AWKの場合
プログラム
BEGIN{ FS = ',' } /^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]+)([eE][+-]?[0-9]+)?$/{ print $0; } END{ }
- BEGIN内では、フィールドセパレータ(FS)をカンマに設定している。
概略
- 「^」:最初にマッチ
- 「$」:最後にマッチ
- 「[+-]?」:+もしくは-が付いても付かなくても構わない。
- 最初の小かっこ内は、仮数部に引っかかるようなパターンである。
- 次の小かっこ内は、指数部に引っかかるようなパターンである。ただし、カッコ後に「?」が付いているので、指数部はあってもなくても構わない。
仮数部
- [0-9]+で1コ以上の数値の並び。
- 「[.]?」で小数点があってもなくても構わない。
- [0-9]*でその後の数字が0コ以上。
- 「|」は、または、の意。整数部が0の場合省略可能。
指数部
- 指数部は「[eE]」で表記。プログラムによってはDとかでも出力されるので、[eED]としておけば、「e」もしくは「E」もしくは「D」で引っかかるようにできる。
- 「[+-]?」は指数部のプラスマイナスにマッチする。あってもなくても良い
- 「[0-9]+」は「1.0E-10」の「10」なんかに引っかかる。「+」が付いているので、1コ以上の数字が必要。
- 最後の「?」は、指数部全体にかかるので指数部はあってもなくても構わない。
この表現はPerlでも使える。
- 作者: A.V.エイホ,P.J.ワインバーガー,B.W.カーニハン,足立高徳
- 出版社/メーカー: USP研究所
- 発売日: 2010/01/01
- メディア: 単行本(ソフトカバー)
- クリック: 1回
- この商品を含むブログを見る
表組みのCSSメモ
表組みとCSS
HTML
htmlファイルは次のとおり、linkはCSSファイルのパスを書いておく。
talbleのクラスはCSSファイルを参照。
<!DOCTYPE html> <html> <head> <title>表組み</title> <link rel="stylesheet" href="./css/style.css"> </head> <body> <table class="sample"> <tr> <th>th1</th> <th>th2</th> <th>th3</th> <th>th4</th> </tr> <tr> <td>td1</td> <td>td2</td> <td>td3</td> <td>td4</td> </tr> <tr> <td>td1</td> <td>td2</td> <td>td3</td> <td>td4</td> </tr> <tr> <td>td1</td> <td>td2</td> <td>td3</td> <td>td4</td> </tr> <tr> <td>td1</td> <td>td2</td> <td>td3</td> <td>td4</td> </tr> </table> </body> </html>
CSS
CSSファイルは次のとおり。
コメントは/**/ で行う。
table, th, td { border-collapse: collapse; border: 1px solid #ccc; line-height: 1.5; } /* sampleはhtml側でclassとして指定する*/ table.sample th { width: 150px; padding: 10px; font-weight: bold; vertical-align: top; background: #3f3f3f; color: #ffffff; } table.sample td { width: 350px; padding: 10px; vertical-align: top; } /* 偶数と奇数で切り替える */ tr:nth-child(even) { background: #d9d9d9; }
セッション
ページをまたいでデータを保持する
- PHPにおいてページをまたいでデータを引き継ぎたいときは、セッションを使う。
a1.phpのコード(遷移元)
- これを最初のページ(遷移元)にする。
- ただし、phpコードの最初に記述すること。途中からsession_startすると、データが失われる。
- 配列aaa1のデータを設定し、$_SESSION[['a1']に保存している。
<?php session_start(); $aaa1 = [1000,1001,1002]; $_SESSION['a1'] = $aaa1; echo '配列$aのデータ@a1.php<br/>'; foreach ($aaa1 as $a1) { echo $a1.'<br />'; } echo '<a href="./a2.php">別ページに遷移</a>';
フィッシャー情報量の事例(ポアソン分布)
フィッシャー情報量の事例(正規分布)
フィッシャー情報量
フィッシャー情報量は次の記事を参照。
nishiru3.hatenablog.com
正規分布の基本的性質
正規分布の基本的性質は次の記事を参照。
nishiru3.hatenablog.com
正規分布の対数尤度関数
正規分布のフィッシャー情報量
MySQLの設定
MySQL8.0のインストール
次のサイトでインストーラーをダウンロード。
認証方式の変更
ユーザーの確認と追加
MySQL 8.0 Command Line Client を立ち上げて確認。
SELECT user, host, plugin FROM mysql.user;
次のコマンドでユーザーを追加。
CREATE USER 'admin'@'localhost' IDENTIFIED by 'pass';
権限の付与
GRANT ALL ON projects.* TO 'admin'@'localhost';
これで、localhostのadminユーザーに対して、projectsデータベースへの権限を与えている。
phpでの接続確認とデータの追加
<?php /** * MySQLへの接続 */ $dsn = 'mysql:dbname=projects;host=localhost'; $user = 'admin'; $password = 'pass'; try{ $dbh = new PDO($dsn, $user, $password); print('接続に成功しました。<br>'); }catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } /** * データベースへの追加 */ $id = 1; $name = 'nanashi'; $stmt = $dbh -> prepare("INSERT INTO personal (id, name) VALUES (:id, :name)"); $stmt->bindParam(':id', $id, PDO::PARAM_STR); $stmt->bindValue(':name', $name, PDO::PARAM_INT); $stmt->execute(); # $dbh=NULL;