Matlab-variables

提供:Dev Guides
移動先:案内検索

MATLAB-変数

MATLAB環境では、すべての変数は配列または行列です。

変数を簡単な方法で割り当てることができます。 例えば、

x = 3          % defining x and initializing it with a value

MATLABは上記のステートメントを実行し、次の結果を返します-

x = 3

_x_という名前の1行1列の行列を作成し、その要素に値3を格納します。 別の例を確認してみましょう。

x = sqrt(16)    % defining x and initializing it with an expression

MATLABは上記のステートメントを実行し、次の結果を返します-

x = 4

次のことに注意してください-

  • 変数がシステムに入力されると、後で参照できます。
  • 変数は、使用する前に値を持っている必要があります。
  • 式が変数に割り当てられていない結果を返す場合、システムはそれをansという名前の変数に割り当てます。これは後で使用できます。

例えば、

sqrt(78)

MATLABは上記のステートメントを実行し、次の結果を返します-

ans =  8.8318

この変数を使用できます ans -

sqrt(78);
9876/ans

MATLABは上記のステートメントを実行し、次の結果を返します-

ans =  1118.2

別の例を見てみましょう-

x = 7 *8;
y = x* 7.89

MATLABは上記のステートメントを実行し、次の結果を返します-

y =  441.84

複数の割り当て

同じ行に複数の割り当てを持つことができます。 例えば、

a = 2; b = 7; c = a * b

MATLABは上記のステートメントを実行し、次の結果を返します-

c = 14

変数を忘れてしまいました!

*who* コマンドは、使用したすべての変数名を表示します。
who

MATLABは上記のステートメントを実行し、次の結果を返します-

Your variables are:
a    ans  b    c
*whos* コマンドは変数についてもう少し表示します-
  • 現在メモリにある変数
  • 各変数のタイプ
  • 各変数に割り当てられたメモリ
  • 複雑な変数であるかどうか
whos

MATLABは上記のステートメントを実行し、次の結果を返します-

Attr Name        Size        Bytes      Class
==== ====        ====        ====       =====
   a             1x1           8        double
   ans           1x70         757        cell
   b             1x1           8        double
   c             1x1           8        double

Total is 73 elements using 781 bytes
*clear* コマンドは、すべての(または指定された)変数をメモリから削除します。
clear x     % it will delete x, won't display anything
clear       % it will delete all variables in the workspace
            %  peacefully and unobtrusively

長い課題

長い割り当ては、省略記号(…​)を使用して別の行に拡張できます。 例えば、

initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * time

MATLABは上記のステートメントを実行し、次の結果を返します-

final_velocity = 196

formatコマンド

デフォルトでは、MATLABは小数点以下4桁の数値を表示します。 これは*ショートフォーマット*と呼ばれます。

ただし、より正確にしたい場合は、 format コマンドを使用する必要があります。

*format long* コマンドは、10進数の後に16桁を表示します。

たとえば-

format long
x = 7 + 10/3 + 5 ^ 1.2

MATLABは上記のステートメントを実行し、次の結果を返します。

x = 17.2319816406394

もう一つの例、

format short
x = 7 + 10/3 + 5 ^ 1.2

MATLABは上記のステートメントを実行し、次の結果を返します-

x = 17.232
*format bank* コマンドは、数値を小数点以下2桁に丸めます。 例えば、
format bank
daily_wage = 177.45;
weekly_wage = daily_wage * 6

MATLABは上記のステートメントを実行し、次の結果を返します-

weekly_wage = 1064.70

MATLABは、指数表記を使用して大きな数値を表示します。

*format short e* コマンドを使用すると、小数点以下4桁に指数を加えた指数形式で表示できます。

例えば、

format short e
4.678 * 4.9

MATLABは上記のステートメントを実行し、次の結果を返します-

ans = 2.2922e+01
*format long e* コマンドを使用すると、小数点以下4桁に指数を加えた指数形式で表示できます。 例えば、
format long e
x = pi

MATLABは上記のステートメントを実行し、次の結果を返します-

x = 3.141592653589793e+00
*format rat* コマンドは、計算の結果として最も近い有理式を提供します。 例えば、
format rat
4.678 * 4.9

MATLABは上記のステートメントを実行し、次の結果を返します-

ans = 34177/1491

ベクターの作成

ベクトルは、数値の1次元配列です。 MATLABは、2種類のベクトルを作成することができます-

  • 行ベクトル
  • 列ベクトル
  • 行ベクトル*は、要素のセットを角括弧で囲み、スペースまたはコンマを使用して要素を区切ることによって作成されます。

例えば、

r = [7 8 9 10 11]

MATLABは上記のステートメントを実行し、次の結果を返します-

r =

   7    8    9   10   11

もう一つの例、

r = [7 8 9 10 11];
t = [2, 3, 4, 5, 6];
res = r + t

MATLABは上記のステートメントを実行し、次の結果を返します-

res =

         9         11         13         15         17
  • 列ベクトル*は、要素を区切るためにセミコロン(;)を使用して、要素のセットを角括弧で囲むことによって作成されます。
c = [7;  8;  9;  10; 11]

MATLABは上記のステートメントを実行し、次の結果を返します-

c =
       7
       8
       9
      10
      11

行列の作成

マトリックスは、数値の2次元配列です。

MATLABでは、各行をスペースまたはコンマで区切られた要素のシーケンスとして入力することで行列が作成され、行の終わりはセミコロンで区切られます。 たとえば、次のように3行3列の行列を作成します-

m = [1 2 3; 4 5 6; 7 8 9]

MATLABは上記のステートメントを実行し、次の結果を返します-

m =
       1              2              3
       4              5              6
       7              8              9