ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

関数内での変数の読み込み

MAT ファイルからデータを読み込む関数を定義しても、MATLAB® で結果が予想どおりに返されない場合、MAT ファイルのいずれかの変数が MATLAB 関数と同じ名前をもっていないかどうかを確認してください。関数名と競合する一般的な変数名には、ijmodecharsizepath などがあります。

たとえば、変数 heightwidth、および length を含む MAT ファイルについて考えます。これらの変数を findVolume などの関数を使用して読み込みます。

function vol = findVolume(myfile)
  load(myfile);
  vol = height * width * length;

MATLAB では length への参照は MATLAB 関数 length の呼び出しであると解釈され、エラーが返されます。

length の使用エラー。入力引数が不足しています。

エラーが発生しないようにするには、関数を定義する際に以下の方法のいずれかを選択します (複数可)。

  • 構造体配列に読み込みます。たとえば、関数 findVolume を以下のように定義します。

    function vol = findVolume(myfile)
      dims = load(myfile);
      vol = dims.height * dims.width * dims.length;
  • 関数 load の呼び出しに変数名を明示的に含めます。

  • load を呼び出す前に関数内の変数を初期化します (空の行列または空の文字列への代入など)。

特定の名前が MATLAB 関数と関連しているかどうかを判断するには、関数 exist を使用します。

この情報は役に立ちましたか?