Main Content

関数を実行するハイパーリンクの作成

特殊なキーワード matlab: を使用して、その他の関数にコマンドを組み込めます。多くの場合、このキーワードを含む関数はハイパーリンクを表示し、このハイパーリンク テキストをクリックするとコマンドが実行されます。matlab: 構文をサポートする関数には、disperrorfprintfhelp および warning があります。

matlab: 構文を使用して、1 つ以上の関数を実行するコマンド ウィンドウにハイパーリンクを作成します。たとえば、disp を使用して以下のように「Hypotenuse」という単語を実行可能なハイパーリンクとして表示できます。

disp('<a href="matlab:a=3; b=4;c=hypot(a,b)">Hypotenuse</a>')
ハイパーリンクをクリックすると、matlab: に続く 3 つのコマンドが実行され、以下のようになります。
c =
     5
リンクを実行すると、変数 ab および c がベース ワークスペースに作成されるか、または再定義されます。

disp への引数は <a href> HTML ハイパーリンクです。'<a href= から </a>' までのハイパーテキストのテキスト全体を 1 行に含めます。すなわち、長いテキストを改行の後に続けないでください。開く側の < の後と閉じる側の > の前にスペースは入力できません。ahref の間には、半角スペースが必要になります。

matlab: 構文は直接実行できません。つまり、以下のように入力した場合、

matlab:a=3; b=4;c=hypot(a,b)
エラーが発生します。MATLAB® がコロンを無効なコンテキストの配列演算子と解釈するためです。
??? matlab:a=3; b=4;c=hypot(a,b)
            |
Error: The expression to the left of the equals sign 
       is not a valid target for an assignment.

Web へのライブ ハイパーリンクを表示するには、matlab: を使用する必要はありません。たとえば、外部 Web ページへリンクする場合、以下のようにして disp を使用できます。

disp('<a href="http://en.wikipedia.org/wiki/Hypotenuse">Hypotenuse</a>')
コマンド ウィンドウの結果は以前の例と同じように見えますが、en.wikipedia.org のページが開きます。

matlab: を使用して、以下のことを実行できます。

1 つの関数の実行

matlab: を使用して、コマンド ウィンドウのハイパーリンクをクリックしたときに、指定したステートメントを実行することができます。たとえば、次のコマンド

disp('<a href="matlab:magic(4)">Generate magic square</a>')

を実行すると、コマンド ウィンドウにこのリンクが表示されます。

リンクをクリックすると MATLAB は magic(4) を実行します。

複数の関数の実行

複数の関数を 1 つのリンクで実行できます。たとえば、次のコマンド

disp('<a href="matlab: x=0:1:8;y=sin(x);plot(x,y)">Plot x,y</a>')

を実行すると、コマンド ウィンドウにこのリンクが表示されます。

リンクをクリックすると MATLAB はこのコードを実行します。

x = 0:1:8;
y = sin(x);
plot(x,y)

ベース ワークスペースに x を再定義します。

x = -2*pi:pi/16:2*pi;

ハイパーリンク Plot x,y を再度クリックして、現在の値 x0:1:8 に戻します。Plot x,y をクリックしたときに matlab: が実行するコードは、ベース ワークスペースに x を定義します。

コマンド オプションの指定

オプションを提示するために、ファイル内で複数の matlab: ステートメントが以下のように使用できます。

disp('<a href = "matlab:state = 0">Disable feature</a>')
disp('<a href = "matlab:state = 1">Enable feature</a>')

コマンド ウィンドウにはクリックするリンクが表示されます。クリックしたリンクに応じて、MATLAB は state0 または 1 に設定します。

特殊文字の追加

MATLAB は、たとえば大なり記号 (>) などの特殊文字を含め、ほとんどのテキストを正しく解釈します。たとえば以下のステートメントは大なり記号 (>) を含みます。

disp('<a href="matlab:str = ''Value > 0''">Positive</a>')

そして以下のハイパーリンクを生成します。

いくつかの記号は、正しく解釈されないため、記号に ASCII 値を使用する必要があります。たとえば、前のステートメントを実行する他の方法は、記号の代わりに ASCII 62 を使用することです。

disp('<a href="matlab:str=[''Value '' char(62) '' 0'']">Positive</a>')