公益財団法人広島市産業振興センター広島市中小企業支援センター

閲覧補助
文字サイズ
標準
拡大
検索
お問い合わせ

お電話でお問い合わせ

082-278-8032

メールでお問い合わせ

お問い合わせ

お問い合わせ

お電話でお問い合わせ

082-278-8032

メールでお問い合わせ

お問い合わせ

技術情報の提供

広島市産業振興センターNEWS 第148号(2014.8.15)


広島市産業振興センターNEWS

技術情報の提供 (技術振興部 材料・加工技術室)

   「ビッグデータも計算できるソフトウェアscilabの紹介」


 皆様はパソコンで数値計算をするのにどのようなソフトウェアを使っているでしょうか。おそらく、マイクロソフト社のエクセルなどのような表計算ソフトを利用されている方が多いと思います。ここでは、表計算ソフトとは違った計算を行うことができるソフトウェアであるscilabについてご紹介したいと思います。

 scilabとは、フランス国立情報学自動制御研究所(INRIA:Institut National de Recherche en Informatique et en Automatique)が開発したソフトウェアで、同ホームページからダウンロードすることができます。scilabは計算式を記述するタイプのものですので、表計算ソフトとは使い勝手が異なり、最初は難しいと感じるかもしれませんが、表計算ソフトでは困難なことが簡単にできたりしますので、両方が使えると業務の効率化にも寄与できると思います。

 このソフトウェアのインストール方法や使い方については、多くの方々がホームページで紹介されているため、ここでは省略して、CSV形式データの読み込み、簡単な計算、計算結果の保存の方法についてご紹介します。

 事前にカンマ区切りの数値データを準備します。以下にサンプルデータを準備しましたので、任意のフォルダに保存してください。
 ・サンプルデータ(SampleData.csv 40kb)

 scilabをインストールし起動すると、以下の画面が表示されます。
scilab コンソール画面

この画面のコマンドプロンプト"-->"以降に、以下のコマンドを入力・実行してください。

FileName=uigetfile(["*.csv"]);//データを選択します

A=csvRead(FileName);//データ読み込み

 

すると、データ選択の画面が表示されますので、先ほどのサンプルデータを選択・実行してください。変数"A"にデータが読み込まれます。

 続いて簡単な計算をしてみます。以下の計算コマンドをそれぞれ1行ずつ入力・実行してください。簡単な計算を行い、それぞれの変数B~Gに保存し、結果が表示されます。

B=A*2//データに2を掛けます

C=A/2//データを2で割ります

D=sum(A)//データ全ての合計

E=sum(A,1)//列方向へ合計

F=sum(A,2)//行方向へ合計

G=A(:,1).*A(:,2)//1列目と2列目の掛け算

scilab データ選択画面

 計算した結果をコンピュータ上に保存するには以下のコマンドで行います。

csvWrite(D,"SampleData2.csv");//データ保存

 変数DをSampleData2.csvというファイルに保存できたと思います。

 

 scilabではSciNotesにコマンドを記述して計算を自動化することもできます。 

ここでご紹介したものは、簡単な計算の一端でしたので、使い慣れている表計算ソフトを使ったほうが楽だと思いますが、表計算ソフトよりも高速にビッグデータの計算をしたい場合などには、こうしたソフトを用るのが有用だと思いますので、興味のある方は使われてみてはどうでしょうか。

参考

・データは行列で扱うことができます。行列のn行目、m列目を指定すればその数値を読み出せます。

-->A(1,2)

 ans  =

    10. 

・行や列の全てを選択するためには":"を使います。

-->A(1,:)

 ans  =

     1.    10.    5. 

・"//"以降はコメントとなりますので、整理のために何のコマンドかを記述しておくと便利です。

・コマンドの最後に";"を付ければ計算結果を表示しなくなります。ビッグデータを読み込むときに付けていなければ、延々とデータを表示し続けますので、付けておくほうが無難です。

・データを行列で扱いますので、行列と行列の計算の時には、行列の計算のルールに従います。行列の計算ルールについては高校の数学で習ったと思います。

・Gの計算においては"*"ではなく".*"を用いることで、対応する列の計算をできるようにしています。

■問い合わせ先
  技術振興部 技術振興室 (広島市工業技術センター内) 
  TEL 082-242-4170(代表)

HOME

このページのトップへ