FreeMat v3.5 日本語ドキュメント
タイプ変換関数

 

ドキュメント目次

--------------------------------------------------------------------------------------------------------------------------------------------
int2bin 整数タイプから2進数へ変換
  [構文]
 y = int2bin(x,n)
xは整数ベクトル、nは2進数変換後のビット数。 yは論理データとなります。
  [例] 

--> A = [2;5;6;2]

A =

2
5
6
2

--> int2bin(A,8)

ans =

0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 1
0 0 0 0 0 1 1 0
0 0 0 0 0 0 1 0

--> A = [1;2;-5;2]

A =

1
2
-5
2
 
--> B=int2bin(A,8)

B =

0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
1 1 1 1 1 0 1 1
0 0 0 0 0 0 1 0

--> who B
Variable Name Type Flags Size
B logical [4 8]
 
--------------------------------------------------------------------------------------------------------------------------------------------
bin2int 2進数から整数タイプへ変換
  [構文]
 y = bin2int(x)
xは論理データです。yはuint32となります(特に負の数を扱う時は注意)。 
  [例] 

--> A = [2;5;6;2]

A =

2
5
6
2

--> C=bin2int(B)

C =

1
2
251
2

--> who C
Variable Name Type Flags Size
C uint32 [4 1]
-----------------------------------------------------------------------------------------------------
logical  論理値へ変換
  [構文]
 y = logical(x)
非ゼロの要素は全て1として出力されます。 
 
  [例] 

--> logical([1,2,3,0,0,0,5,2,2])

ans =

1 1 1 0 0 0 1 1 1

-------------------------------------------------------------------------------------------------------------------------------------------
string 文字列へ変換
  [構文]
 y = string(x)
xのアスキーコードを文字列に変換します。 
  [例] 

--> a = [104,101,108,108,111]

a =

104 101 108 108 111

--> string(a)

ans =

hello

-------------------------------------------------------------------------------------------------------------------------------------------
uint8 UINT8整数型へ変換
  [構文]
 y = uint8(x)
xは数値ベクトル。 
 
  [例] 
数々の例を以下に示します。 

--> uint8(200)

ans =

200
 
--> uint8(400)

ans =

144
 
--> uint8(-100)

ans =

156
 
--> uint8(pi)

ans =


 
--> uint8(5+2*i)

ans =

5
 
--> uint8('helo')

ans =

104 101 108 111
 
--> uint8({4})
Error: Cannot convert cell-arrays to any other type. 

--------------------------------------------------------------------------------------------------------------------------------------------
uint16 UINT16整数型へ変換

  [構文] 
 y = uint16(x)
xは数値ベクトル。 
  [例]
数々の例を以下に示します。 
--> uint16(200)

ans =

200

--> uint16(99400) 

ans = 33864

--> uint16(-100) 

ans = 65436

--> uint16(pi)

 ans = 3

--> uint16(5+2*i) 

ans = 5

--> uint16('helo') 

ans = 104 101 108 111

--> uint16({4}) 

Error: Cannot convert cell-arrays to any other type.

---------------------------------------------------------------------------------------------------
uint32 UINT32整数型へ変換
 
  [構文]
   y = uint32(x)
xは数値ベクトル。 
 
  [例] 
--> uint32(200)

ans =

 200

--> uint32(40e9)

ans =

 1345294336

--> uint32(-100)

ans =

 4294967196

--> uint32(pi)

ans =

 3

--> uint32(5+2*i)

ans =

 5

--> uint32('helo')

ans =

 104 101 108 111


--> uint32({4})
Error: Cannot convert cell-arrays to any other type.

-------------------------------------------------------------------------------------------------------------------------------------------
uint64 UINT64整数型へ変換
 
  [構文] 
   y = uint64(x)
xは数値ベクトル。  
 
  [例] 
--> uint64(200)

ans =

 200

--> uint64(40e9)

ans =

 40000000000


--> uint64(-100)

ans =

 18446744073709551516

--> uint64(pi)

ans =

 3

--> uint64(5+2*i)

ans =

 5

--> uint64('helo')

ans =

 104 101 108 111


--> uint64({4})
Error: Cannot convert cell-arrays to any other type.

-------------------------------------------------------------------------------------------------------------------------------------------
int8 INT8整数型へ変換
 
  [構文] 
   y = int8(x)
xは、数値ベクトル。 
 
  [例] 
--> int8(100)

ans =

 100

--> int8(-100)

ans =

 -100

--> int8(400)

ans =

 -112

--> int8(pi)

ans =

 3

--> int8(5+2*i)

ans =

 5

--> int8('helo')

ans =

 104 101 108 111


--> int8({4})
Error: Cannot convert cell-arrays to any other type.

--------------------------------------------------------------------------------------------------------------------------------------------
int16 INT16整数型へ変換
 
  [構文]
   y = int16(x)
xは数値ベクトル。 
  [例] 
--> int16(100)

ans =

 100

--> int16(-100)

ans =

 -100

--> int16(40000)

ans =

 -25536

--> int16(pi)

ans =

 3

--> int16(5+2*i)

ans =

 5

--> int16('helo')

ans =

 104 101 108 111


--> int16({4})
Error: Cannot convert cell-arrays to any other type.

-------------------------------------------------------------------------------------------------------------------------------------------
int32 INT32整数型へ変換
 
  [構文]
   y = int32(x) 
xは数値ベクトル。 
  [例] 
--> int32(100)

ans =

 100

--> int32(-100)

ans =

 -100

--> int32(40e9)

ans =

 -2147483648


--> int32(pi)

ans =

 3

--> int32(5+2*i)

ans =

 5

--> int32('helo')

ans =

 104 101 108 111


--> int32({4})
Error: Cannot convert cell-arrays to any other type.


-------------------------------------------------------------------------------------------------------------------------------------------
int64 INT64整数型へ変換
 
  [構文]
   y = int64(x) 
xは数値ベクトル。 
  [例]
--> int64(100)

ans =

100

--> int64(-100)

ans =

-100


--> int64(40e9)

ans =

40000000000

--> int64(pi)

ans =

3

--> int64(5+2*i)

ans =

5


--> int64('helo')

ans =

104 101 108 111

--> int64({4})
Error: Cannot convert cell-arrays to any other type.
 

--------------------------------------------------------------------------------------------------------------------------------------------
single 単精度浮動小数点へ変換

  [構文]
   y = float(x) 
xは数値ベクトル。 yは32-bitの単精度浮動小数点。
  [例] 
--> a=1

a =

 1

--> b=single(a)

b =

 1

--> who
  Variable Name      Type   Flags             Size
              a     int32                    [1 1]
              b     float                    [1 1]
--------------------------------------------------------------------------------------------------------------------------------------------
float 単精度浮動小数点へ変換
 
  [構文]
   y = float(x) 
xは数値ベクトル。yは32-bitの単精度浮動小数点。
  [例]
--> float(200)

ans =

200


--> float(400.0)

ans =

400


--> float(3.0+4.0*i)

ans =

3

--> float('helo')

ans =

104 101 108 111


--> float({4})
Error: Cannot convert cell-arrays to any other type.

-----------------------------------------------------------------------------------------------------------------------------------------------
double 倍精度浮動小数点へ変換
 
  [構文]
   y = double(x) 
xは数値ベクトル。yは64bitの倍精度浮動小数点。 
  [例]
--> double(200)

ans =

200

--> double(400.0f)

ans =

400


--> double(3.0+4.0*i)

ans =

3

--> double('helo')

ans =

104 101 108 111

--> double({4})
Error: Cannot convert cell-arrays to any other type.
 
---------------------------------------------------------------------------------------------------
complex 複素数へ変換
 
  [構文]
   y = complex(x) 
xは数値ベクトル。 yは32bitの単精度浮動小数点の複素数。
  [例]
--> complex(200)

ans =

2.0000e+00 +0.0000e+00i


--> complex(400.0)

ans =

4.0000e+00 +0.0000e+00i


--> complex(3.0+4.0*i)

ans =

3.0000 + 4.0000i


--> complex('he')

ans =

1.0e+02 *

1.0400 + 0.0000i 1.0100 + 0.0000i


--> complex(nan)

ans =

nan + 0.0000i


--> complex({4})
Error: Cannot convert cell-arrays to any other type.

--------------------------------------------------------------------------------------------------------------------------------------------
dcomplex 複素数へ変換
 
  [構文]
   y = dcomplex(x) 
xは数値ベクトル。yは32bitの単精度浮動小数点の複素数。
  [例]
--> dcomplex(200)

ans =

2.0000e+00 +0.0000e+00i


--> dcomplex(400.0)

ans =

4.0000e+00 +0.0000e+00i


--> dcomplex(3.0+4.0*i)

ans =

3.0000 + 4.0000i


--> dcomplex('h')

ans =

1.0400e+00 +0.0000e+00i



--> dcomplex(nan)

ans =

nan + 0.0000i


--> dcomplex({4})
Error: Cannot convert cell-arrays to any other type.
 
---------------------------------------------------------------------------------------------------
cast キャスト
 
  [構文]
    y = cast(x,toclass) 
xは数値ベクトル。toclassに下記のキャストしたいタイプを指定します。
'cell' セル配列
'struct' 構造体
'logical' 論理値
'uint8' uint8
'int8' int8
'uint16' uint16
'int16' int16
'uint32' uint32
'int32' int32
'uint64' uint64
'int64' int64
'float' float
'single' 単精度浮動小数点
'double' 倍精度浮動小数点
'complex' 32bit単精度浮動小数点複素数
'dcomplex' 64bit倍精度浮動小数点複素数
'string' 文字列 
 
  [例]
--> cast(pi,'uint8')

ans =

3

--> cast([1 0 3 0],'logical') ans = 1 0 1 0 
 

-------------------------------------------------------------------- ----------------------------------------------------------------------
char 文字列へ変換

  [構文]
   y = char(x) 
xは数値ベクトル(アスキーコード)。unicodeは現在サポートしていません。
   y = char(c)
cはセル行列の文字行列。 
   y = char(s1, s2, s3, ...)
siは文字列行列。yはこの入力に対応した文字列を返します。 
  [例]
--> char([32:64;65:97])

ans =

!"#$%&'()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a

--> char({'hello','to','the','world'})

ans =

 hello
 to  
 the 
 world

--> char('hello','to','the','world')

ans =

 hello
 to  
 the 
 world
 
 

------------------------------------------------------------------- -----------------------------------------------------------------------
bin2dec 文字型2進数から10進数へ変換

  [構文]
   y = bin2dec(x) 
xはバイナリの文字列
  [例]
--> bin2dec('101110')

ans =

46

--> bin2dec('010')

ans =

2  

--------------------------------------------------------------------------------------------------------------------------------------------
dec2bin 10進数から文字型2進数へ変換
 
  [構文]
   y = dec2bin(x,n)
xは整数、nは2進数時のビット数。 
   y = dec2bin(x) 
最小のビット数となる。 
  [例]
--> dec2bin(56)

ans =

111000

--> dec2bin(1039456)

ans =

11111101110001100000

--> dec2bin([63,73,32],5)

ans =

11111
01001
00000