MATLAB で変数タイプをチェックする

Ammar Ali 2023年1月30日
  1. MATLAB の class() 関数を使用して変数の型を確認する
  2. MATLAB の whos 関数を使用して変数の型を確認する
  3. MATLAB で変数が特定の型であるかどうかを確認する
MATLAB で変数タイプをチェックする

このチュートリアルでは、MATLAB の class() 関数と whos 関数を使用して、特定の変数の型を確認する方法について説明します。

MATLAB の class() 関数を使用して変数の型を確認する

MATLAB では、型を使用して変数を定義しません。代わりに、必要なデータを変数に格納します。したがって、コードのある時点で変数の型を確認したい場合は、class() 関数を使用して変数の型を確認できます。たとえば、変数に値を格納してから、そのクラスを確認してみましょう。以下のコードを参照してください。

a = 123;
b = 'Hello';
type_of_a = class(a)
type_of_b = class(b)

出力:

type_of_a =

double


type_of_b =

char

上記のコードでは、ab の 2つの変数を定義し、class() 関数を使用してそれらの型をチェックしています。出力からわかるように、変数 a の型は double であり、変数 b の型は char です。変数が定義されているか、ワークスペースに格納されている限り、変数のタイプを確認できます。

MATLAB の whos 関数を使用して変数の型を確認する

現在 MATLAB のワークスペースにあるすべての変数の型を確認する場合は、whos() 関数を使用して変数の型を確認できます。たとえば、変数に値を格納してから、そのクラスを確認してみましょう。以下のコードを参照してください。

a = 123;
b = 'Hello';
whos

出力:

  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  b         1x5                10  char                

whos 関数は、現在ワークスペースに格納されている各変数のクラスをチェックします。1つの変数のみのクラスまたはタイプを確認する場合は、以下に示すように、whos 関数の後に変数名を記述します。

a = 123;
whos a

上記のコードでは、whos は変数 a のクラスのみを提供します。

MATLAB で変数が特定の型であるかどうかを確認する

特定の変数が必要なクラスまたはタイプであることを確認する場合は、その特定のタイプの関数を使用できます。たとえば、変数のタイプが char であるかどうかを確認するには、ischar() 関数を使用できます。この関数は、変数に応じて 0 または 1 を返します。変数のタイプが char の場合、ischar() 関数は 1 を返します。それ以外の場合は、0 を返します。以下のサンプルコードを参照してください。

a = 'Hello';
ischar(a)

出力:

ans =

     1

上記のコードでは、変数 a がタイプ char であるかどうかを確認しました。出力からわかるように、変数 a のタイプは char です。iscell() 関数などの他の型チェック関数を使用して、変数の型が cell であるかどうかをチェックすることもできます。isinteger() 関数を使用して、変数のタイプが int であるかどうかを確認できます。isfloat() 関数を使用して、変数のタイプが float であるかどうか、およびその他の多くの関数を確認できます。これらの関数は、if ステートメントのような条件で使用できます。たとえば、変数が char 型であるかどうかを確認したいとします。変数のタイプが char の場合、メッセージを表示します。それ以外の場合は表示しません。

a = 'Hello World';
if ischar(a)
    disp(a)
end

出力:

Hello World
著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook