日常分析

MATLABで整数か小数かを判定するアイディア

どうもこんにちは.まさぽんです.

今回は忘備録的な側面が強いですが,

「MATLABって数字の整数判定できないのかな??」

という生じた疑問を解決したプロセスをまとめていこうと思います.

あまりだらだら書いても仕方ないので,早速本文に行きましょう.

この記事に至った背景,開発に至った経緯

どうしても,プログラムを書いていく中で数字が整数か少数かを判定して処理を変えたいことがありました.

しかし「MATLAB 整数 判定」調べてみても,mathworks社の「配列の整数判定」についてのサイトばかりで,正直,うんざりしてました...

(mathwork社のまとめは多大に活用していますが...)

何とかならないかというときに

「プログラムは自分の思うものを作る」

と言った当たり前のことが思い浮かび,

「自分で何とかしてみよう」と決心してみました.

割り算における整数,小数判定の解説

今回は,「floor」関数を用いて,整数の判定を行おうと思います.

floor関数はどのような働きをするかというと

Y=floor(x) でxの要素を要素以下の最も近い整数に丸めて変数Yに格納します。

わかりづらいので,具体例をみて欲しいです.

以下のようになります.

実行結果

よって,小数の場合は,切り捨てが起き,整数の場合は,そのままという風に解釈してみました.

整数判定の基本的アイディア

整数と小数の判定の基本的アイディアは

floor(割り算の式) == (割り算の式)

これが成立すれば,整数という風に解釈するということです.逆に

 floor(割り算の式) == (割り算の式)

が成立しなければ,小数と解釈できます.

ちなみに,MATLABでは,このような論理式では

論理式 "==" が成立すると"1"を,成立しなければ"0"を返します.

これを用いて,整数判定を行おうと思います.

MATLABでの定式化

定式化ってほどではありませんが...

一応忘備録として,載せておきます.

        if 割り算の式 == floor(割り算の式) %整数の時
              
        %行う処理を記述

        else %小数の時
           
        %行う処理を記述

        end

実行結果

試しに,3(整数)と3.3(小数)で比較をしてみました

ソースコードの実行結果

どうやら,うまくいっているようです.

まとめ

正直,整数判定なんて,ちゃんと調べれば,関数などMATLABには入ってそうですが,

小さなものでも,自分でアルゴリズムを考え,ある素材を使って実装していくという経験は今後につながると信じて,無駄ではなかったと思い込み,今後のプログラミングに励んでいきたいなと思います.(笑)

カテゴリのように「ガラクタ」なので,,,

もっと良い方法,そもそも整数判定の関数があるのであれば,教えてくれるととっても助かります.

あるがとうございました.

[contact-form-7 404 "Not Found"]