C.Basic - Matrix

  Enterance > English Top > C.Basic > Reference > Matrix

Extended Matrix

Secification and usage of Matrix in C.Basic is deferent from genuine Casio Basic as follows.

C.Basic covers genuine Casio Basic's usage of matrix, real number can be used in Real Number Mode and integer can be used in Integer Mode.

Matrix in C.Basic can handle Bit (1 bit), BYTE (1 byte) and WORD (2 byte) as well as real number (8 byte) and integer (4 byte) as type of matrix.

Add suffix to matrix name at matrix allocation to declare type of the matrix;
- [.P] or [.p] : 1 bit Integer Matrix, handling number is 0 to 1.
- [.B] or [.b] : 8 bit Integer BYTE Matrix, handling number is -128 to 127.
- [.W] or [.w] : 16 bit Integer WORD Matrix, handling number is -32,768 to 32,767.
- [.L] or [.l] : 32 bit Integer Long WROD Matrix, handling number is -2,147,483,648 to 2,147,483,647.
- [.F] or [.f] : 64 bit Double-Precision Real Number Matrix, handling number is ±9.88131291682493e-323 to ±1.7976931348623151e+308.

行列は純正同様に{m,n}型で{row(行),column(列)}での実装となります。
例外として1ビット型は{X,Y}型の実装で{column(列,)row(行)}での実装となります。

1ビット行列は画面のVRAMと同じ構成となるので、
[.V]または[.v]指定するとVRAMを127行x63列の行列に割り当てて読み書きが出来ます。
さらに[.VG]でグラフィックVRAM、[.VT]でテキストVRAMを行列に割り当てることが出来ます。
尚、インデックスベースは0から始まり、行列サイズは{128,64}固定となります。

(例){128,64}→Dim Mat G.V
 Mat Gにアクセスすることでその時点でのVRAMを直接読み書きできますが表示系コマンドではないので、
 画面表示する場合は、コマンド実行後に強制表示させる必要があります。

(例){128,64}→Mat G.V
   Screen.G // グラフィック画面選択(他のグラフィックコマンドでも可)
   1→Mat G[63,31]
   PutDispDD // 画面転送コマンド
   グラフィック画面の真ん中に点を打ちます。
   PxlOn 31,63と同じです。

(例){128,64}→Mat G.V
   Screen.T // テキスト画面選択(他のテキスト系コマンドでも可)
   1→Mat G[63,31]
   PutDispDD // 画面転送コマンド
   テキスト画面の真ん中に点が打てます。

Initialization of Matrix

純正同様に、
{m,n}→Dim Mat A形式と、
[[1,2,3][4,5,6]]→Mat A形式の初期化をサポートしています。

行列要素の一括初期化として純正同様のFillコマンドと数値→Mat Aという形式をサポートしています。
(例)Fill(123,Mat A)
(例)123→Mat A
Mat A行列の全要素を123で初期化することができます。


Mat行列初期化コマンド[[ ]]において、改行&空白を入れることが可能です。
(例)
 [[0B11001100,
  0B00110011,
  0B11001100,
  0B00110011
 ]]→Mat A.B

Matrix Transposition

純正CasioBasicと同じTrnコマンドをサポートしていますが純正CasioBasicとは違い、行列そのものを転置変換します。
(例)Trn Mat A
 行列Aを転置変換します。

Matrix Type Conversion

行列の要素サイズ変更
=====================
行列の型(1ビット、バイト、ワード、ロングワード、実数)は行列確保後でも任意に変更できます。
(例)[[1,2,3,4][5,6,7,8]]→Mat A.B
   Mat A→Dim Mat A.W
 バイト型のMat A行列をワード型に変更できます。
 要素数は変更後の型サイズに応じて変化します。
 [[0x12,0x34][0x56,0x78]]→Mat A.W
 と同じ結果になります。

(注意)1ビット型行列からの変更、また1ビット型行列への変更は行と列が反転します。
 これは1ビット型行列はX,Y型で実装しているために通常のm,n型行列とは転置行列の関係になります。
 {127,63}→Dim Mat A.P
 LCD画面の全画面ビットマップデータの仮想メモリとして利用できるバッファとして確保します。
 Mat A→Dim Mat A.B
 バイト型行列に変更すると、
 要素サイズは{63,16}になります。

1st Index of Matrix

純正CasioBasicでは行列のインデックスは1から始まりますが、C.Basicでは0から始まることができます。
セットアップもしくはコメント欄での記述で行列の始まりを選択できます。
(例)#Mat 1
  従来通り1から始まります。
(例)#Mat 0
  {3,2}→Dim Mat A
 確保される行列は A[0,0]~A[2,1]となります。

 同時に画面座標も0まで有効になります。これで全画面が描画対象エリアとなります
(例)Pxlon 0,0

Matrix Review

=====================
行列の表示について
=====================
Mat行列エディタにおいて2進数、16進数での表示ができます。
行列編集モードで[F5]を押すと2進数表示、[F6]で16進数表示になります。
10進数表示に戻すには再度[F5][F6]を押します。
ただし、2進数表示はバイト(1バイト)とワードタイプ(2バイト)の行列までです。

inserted by FC2 system