CleveSpyder — MATLAB 互換と Python を一つの IDE で
CleveSpyder は Spyder IDE を、MATLAB 互換のコードと Python を同じ机で扱える場所にします。 MATLAB 互換の命令を打てば MATLAB 互換の結果が返り、たった一語で同じコンソールを通常の Python に切り替えられます。ClevePython(mtlcompat、Python 上の MATLAB 互換コア)と pySGLIB(SG-Lib の移植)の上に構築され、それらとともに成長します。SG-Lib 2027 — Python への移行 も参照してください。
MATLAB® は The MathWorks, Inc. の登録商標です。ClevePython は MathWorks から独立しており、MathWorks とは提携しておらず、その推奨も受けていません。MATLAB 互換の挙動を Python 上で再現するものであり、MATLAB 自体は使用しません。
両方を習得したい学生のために
多くの学生は両方の言語を読み書きできる必要があります。CleveSpyder は、それを一つのウィンドウ・一つのインタプリタで可能にします:
- 簡潔で行列指向の MATLAB 互換スタイルを練習し、その本当の利点を見る。慣れない記法と格闘せずに済みます。
- 同じ 1 行を MATLAB 互換の形で、そして
cleve offの後に素の Python で打ち、両者がどこで異なるかを正確に読み取る。 - 手早いコンソール試行から、保存された本物のスクリプトへ、IDE を離れずに移る。
- MATLAB から来た人はここで Python に親しみ、Python を学ぶ人は環境を学び直さずに MATLAB 互換スタイルに出会えます。
同じ .m ファイルを両方の環境で
MATLAB 互換の構文で書かれた同じ .m ファイルは、ClevePython で Spyder を通して実行しても、SG-Lib で MATLAB を通して実行しても、同じ結果になります。エディタのコードは同一、どちらのコンソールも ans を設定して描画し、同じ図を出します。

同じ五行を両方のコンソールで
短いコンソール入力も同じように振る舞います。同じ五行 — magic、for ループ、zeros、dir — は、MATLAB 互換の ClevePython コンソール(左、In [n]:)でも MATLAB(右、>>)でも、同じ値・同じ出力になります。

機能
コンソールでの MATLAB 互換構文。 知っている記法を打てば、期待どおりの結果が返ります:
| 入力 | 動作 |
|---|---|
[1 2 3] · [1 2;3 4] | 行列入力(空白=列、;=行) |
1:5 · 5:-2:1 | 範囲 |
A(2,1) · A(1,:) · A(1,end) | 1 始まりの添字、最後の要素に end |
S.VL · S.VL(2,1) | 1 始まり添字付きの構造体フィールド参照 |
A*B · A.*B · A' | 行列積・要素ごとの積・転置 |
A=SGbox · axis on · hold on | 括弧なしの関数名が実行される |
[X,Y]=size(A) | 複数の出力を一度に |
MATLAB 互換構文の本物の .m ファイル。 Spyder エディタで MATLAB 互換構文の本物の .m ファイルを書き、保存し、Spyder コンソールから実行できます。関数もスクリプトも動作し、図は SG-Lib のグラフィックスウィンドウに現れます。
一つのコンソール、二つの言語 — cleve on / cleve off。 cleve on は MATLAB 互換モード、cleve off は同じコンソールを通常の Python に戻し、cleve status は現在の状態を示します。再起動も二つ目のウィンドウも不要です。
モードに合った新規ファイル。 MATLAB 互換モードが有効なら、新規ファイル(Cmd-N)は新しい .m ファイルを開きます。無効なら通常の Python ファイルになります。
慣れ親しんだ挙動のコンソール。 素の名前が import なしで動き、代入が表示され(x=5 → x = 5)、ans が直前の結果を保持し、clc がコンソールを消し、素の呼び出しが図を描き、数値は整列した列で表示され、末尾の ; は表示を抑制します。
エディタは静かなまま。 コードチェッカは設定を理解しているので、書いている間に余計な警告に埋もれません。
成長する橋
CleveSpyder は進行中の移植です。mtlcompat と pySGLIB は継続的に拡張され、より多くの MATLAB 互換構文と SG-Lib 関数が順次加わります。両言語を学び、比較するための補助であり、現時点ではまだ完全な MATLAB 互換インタプリタではありません — 一部の書き方はまだ異なるか、未対応です。目的は単純です。学生が本当に両方の言語で作業し、考えられる一つの IDE です。