このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。一个>
他の大部分のプログラミング言語と同様に,MATLAB®は数学的な“式”を使いますが,他のプログラム言語と異なり,これらの式は行列全体を含んでいます。
MATLABは,タイプの宣言や次元を宣言するステートメントを必要としていません。MATLABは新しい変数名を使おうとするとき、自動的に変数を作成し、適切なサイズのストレージを割り当てます。変数が既に存在していると、MATLAB は必要ならその内容を変更し、新しいストレージを割り当てます。たとえば、次の例を考えてみましょう。
num_students = 25
は,1行1列のnum_students
と名付けた行列を作成し,その単一要素に値25を格納します。任意の変数に代入された行列を表示するには,変数名を入力するだけです。
変数名は1つの文字を先頭に,その後に任意の数の文字,数字,またはアンダースコアを続けて表します。MATLABでは大文字と小文字が区別されます。つまり,一个
と一个
は,同じ変数では“ありません”。
変数名は任意の長さにすることができますが,MATLABは先頭からN
個の文字のみを使用して(ここではN
は,関数<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/namelengthmax.html">namelengthmax
から返される数字です),それ以降の残りの文字を無視します。このためMATLABが変数を識別できるように,各変数名の先頭からN
個の文字をユニークにしなければなりません。
N = namelengthmax N = 63
MATLABは,通常の小数点表示を行います。これは,オプションの小数点をもち,数字の先頭にプラスまたはマイナスの符号をつけます。科学表記として10のべき乗のスケール係数を設定する文字e
を使います。虚数は,我
またはj
をサフィックスとして使います。正しく表現された数字の例を示します。
3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23 1i -3.14159j 3e5i
すべての数字は,IEEE®浮動小数点標準で指定される长形式を使用して内部的に保存されます。浮動小数点数はおよそ16桁の数字の有限精度をもち10-308年から10+ 308の有限な”“範囲に入ります。
双形式で表される数字は,52ビットの最高精度をもちます。52を超えるビット数が必要な double 型では、精度が多少低下します。たとえば、2 つの異なる値が切り捨てられることによって両方とも等しい値になることを、次のコードで示します。
x = 36028797018963968;y = 36028797018963972;X == y = 1
x = uint64 (36028797018963968);y = uint64 (36028797018963972);X == y = 0
MATLABは複素数の実数部と虚数部を格納します。そしてコンテキストに応じて様々な方法で,各部分大きさを取り扱います。たとえば関数<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/sort.html">排序
は大きさに基づいて並べ替えてから位相角で順序を決めます。
排序([3+4i, 4+3i]) ans = 4.0000 + 3.0000i 3.0000 + 4.0000i
これは位相角が次のようになっているためです。
角度(4+3i) ans = 0.6435
「等価」関係演算子==
は,実数部と虚数部の両方が等しいことを要求します。他の二項関係演算子>
<
、>=
、<=
は数の虚数部を無視し,実数部のみを考慮します。
式には,馴染みの深い算術演算子と優先順位則を使います。
|
加算 |
- |
減算 |
|
乗算 |
|
除算 |
|
左除算 |
|
べき乗 |
|
複素共役転置 |
|
演算順序の変更 |
線形代数の世界から離れたとき,行列は2次元の数値配列になります。配列上の代数演算は,要素単位で行われます。このことは,加算,減算では,行列も配列も同じで,乗算演算では異なることになります。MATLABでは,乗法的配列演算をドット,小数点を使って表現します。
演算機能の一覧を示します。
|
加算 |
|
減算 |
|
要素単位の乗算 |
|
要素単位の除算 |
|
要素単位の左除算 |
|
要素単位のべき算 |
|
共役を計算しないで転置のみを行う |
デューラーの魔方陣に,要素単位でそれ自身を乗算すると,
A . *
結果は1から16までの整数の二乗を含んだ配列になります。
Ans = 256 9 4 169 25 100 121 64 81 36 49 144 16 225 196
配列演算は,テーブルを作成するのに有効です。n
を列ベクトルとしましょう。
n =(0:9)”;
したがって,
Pows = [n n.^2 2.^n]
これは二乗と2のべき乗のテーブルになります。
Pows = 0 0 1 1 12 2 4 4 3 9 8 4 16 16 5 25 32 6 36 64 7 49 128 8 64 256 9 81 512
初等数学関数は,配列上に要素単位で働きます。
Format short g x = (1:0.1:2)';log = [x log10(x)]
により,対数テーブルを作成できます。
日志= 1.0 0 1.1 0.04139 1.2 0.07918 1.3 0.11394 1.4 0.14613 1.5 0.17609 1.6 0.20412 1.7 0.23045 1.8 0.25527 1.9 0.27875 2.0 0.30103
MATLABは,<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/abs.html">腹肌
、<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/sqrt.html">√6
、<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/exp.html">经验值
、<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/sin.html">罪
を含む多くの標準的な初等数学関数を用意しています。負の数の平方根や対数は,エラーにはなりません。適切な複素数で表された結果が自動的に出力されます。MATLABは,ベッセル関数やガンマ関数など、より高度な数学関数も提供します。これらの関数のほとんどは、複素数と共に使えます。初等数学関数の一覧を得るには、
帮助elfun
そして,より高度な数学関数や行列関数の一覧を得るのは,
帮助specfun帮助elmat
と入力します。<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/sqrt.html">√6
や<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/sin.html">罪
のような関数は,”“組み込みです。これら組み込み関数は,MATLABのコアの一部で,非常に効率よく作られていますが,計算の詳細を見ることはできません。その他の関数はMATLABプログラミング言語で実装されているため,計算の詳細を参照できます。
組み込み関数とその他の関数ではいくつかの違いがあります。たとえば,組み込み関数の内部コードを読むことはできません。その他の関数は内容を見ることができ必要なら内容を変更することもできます。
いくつかの特別な関数は,有用な定数値を用意しています。
無限大は,非ゼロ値をゼロで割った場合や,明確に定義された数式において<一个href="//www.tatmou.com/jp/jp/help/matlab/ref/realmax.html">最大浮点数
を”“オーバーフローする(超える)値が求められた場合に生成されます。不是一个数字は,0/0
または正
-正
のようなうまく定義できない数学的な値を計算するときに作成されます。
関数の名前は,予約されていません。これらは,次のような新しい変数で上書きできます。
每股收益= 1. e-6
そしてその値は,その後の計算で使われます。もともと定義されている関数は,以下を使うことにより,既定の値に戻ります。
清晰的每股收益
MATLABの式のいくつかの例を既に見てきました。ここでも,いくつかの例とその結果を示します。
rho =(1+根号(5))/2 rho = 1.6180 a = abs(3+4i) a = 5 z =根号(besselk(4/3,rho-i)) z = 0.3730+ 0.3214i huge = exp(log(realmax)) huge = 1.7977e+308 toobig = pi*huge toobig = Inf