6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初心者向けMATLABの使い方まとめ

Last updated at Posted at 2025-07-03

初心者向けMATLABの使い方まとめ

これからMATLABを始める方のための包括的なガイドです。基本操作から実践的な技術まで、効率的に学習できるようにまとめました。

はじめに

MATLAB(MATrix LABoratory)は、数値計算とデータ可視化のための強力なプログラミング環境です。工学、科学、金融などの分野で広く使用されており、行列演算を得意とする特徴があります。本記事では、MATLAB初心者が効率的に学習できるよう、必要な知識を体系的にまとめています。

1. MATLABの基本環境

1.1 インストールと起動

MATLABを使用するには、まずMathWorks社のウェブサイトから製品をダウンロードし、インストールする必要があります。学生版やトライアル版も利用可能です。また、MATLAB Onlineを使用すれば、ブラウザ上で直接MATLABを使用することも可能です。
https://matlab.mathworks.com/

1.2 MATLABデスクトップ環境

MATLABのデスクトップ環境は以下の主要な要素から構成されています:

  • コマンドウィンドウ:MATLABコマンドを直接入力・実行する場所
  • ワークスペース:現在使用中の変数とその値を表示
  • 現在のフォルダー:ファイルの管理と操作
  • コマンド履歴:過去に実行したコマンドの記録
  • エディター:スクリプト(.mファイル)の作成・編集

2. 基本操作

2.1 コマンドの実行

MATLABでは、コマンドウィンドウの >> プロンプトに続いてコマンドを入力し、Enterキーを押すことで実行します。

>> 2 + 3
ans = 5

>> x = 10
x = 10

2.2 基本的なコマンド

コマンド 機能
clc コマンドウィンドウをクリア clc
clear ワークスペースの変数をクリア clear または clear x
who 現在の変数を表示 who
whos 変数の詳細情報を表示 whos
help 関数のヘルプを表示 help sin

3. 変数とデータ型

3.1 変数の定義

a    = 5;           % 数値(スカラー)
name = 'MATLAB';    % 文字列(文字配列)
str  = "Hello";     % 文字列(string 型)
flag = true;        % 論理値

ポイント: 行末にセミコロン(;)を付けると、結果が表示されません。これは長い計算や大きなデータを扱う際に便利です。

3.2 基本的なデータ型

  • 数値型(double):既定の数値型、倍精度浮動小数点
  • 文字型(char):単一引用符で囲まれた文字列
  • 文字列型(string):二重引用符で囲まれた文字列
  • 論理型(logical):true/falseの値
  • 整数型:int8, int16, int32, int64, uint8など

4. 配列と行列

4.1 配列の作成

MATLABの最大の特徴は、すべてのデータが配列(行列)として扱われることです。

% 行ベクトル
row_vector = [1, 2, 3, 4, 5];
% または
row_vector = [1 2 3 4 5];

% 列ベクトル
col_vector = [1; 2; 3; 4; 5];

% 行列
matrix = [1 2 3; 4 5 6; 7 8 9];

4.2 特殊な行列の作成

関数 機能
zeros(m,n) m×nの零行列 zeros(3,3)
ones(m,n) m×nの1行列 ones(2,4)
eye(n) n×nの単位行列 eye(3)
rand(m,n) m×nの乱数行列(0-1の一様分布) rand(2,3)
randn(m,n) m×nの乱数行列(標準正規分布) randn(2,3)

4.3 数列の作成

% コロンを使用した数列
x = 1:10;           % 1から10まで1刻み
y = 0:0.5:5;        % 0から5まで0.5刻み
z = 10:-1:1;        % 10から1まで-1刻み(逆順)

% linspace関数
t = linspace(0, 2*pi, 100);  % 0から2πまで100等分

4.4 行列要素へのアクセス

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

% 個別要素へのアクセス
A(2,3)              % 2行3列目の要素(値:6)

% 行・列の抽出
A(2,:)              % 2行目すべて
A(:,1)              % 1列目すべて
A(1:2, 2:3)         % 1-2行目、2-3列目の部分行列

% 論理インデックス
A(A > 5)            % 5より大きい要素を抽出

5. 基本的な演算

5.1 算術演算

演算子 機能
+ 加算 a + b
- 減算 a - b
* 行列乗算 A * B
.* 要素毎の乗算 A .* B
/ 右除算 A / B
./ 要素毎の除算 A ./ B
^ 行列のべき乗 A ^ 2
.^ 要素毎のべき乗 A .^ 2

注意: ドット(.)の有無によって演算の意味が変わります。ドット付きは要素毎の演算、ドットなしは行列としての演算を意味します。

5.2 関係演算・論理演算

演算子 機能
== 等しい a == b
~= 等しくない a ~= b
< より小さい a < b
> より大きい a > b
&& 論理AND(スカラー) a && b
` `
& 論理AND(配列) A & B
` ` 論理OR(配列)

6. 数学関数

6.1 基本的な数学関数

関数 機能
sin, cos, tan 三角関数 sin(pi/4)
asin, acos, atan 逆三角関数 asin(0.5)
exp 指数関数 exp(1)
log 自然対数 log(10)
log10 常用対数 log10(100)
sqrt 平方根 sqrt(16)
abs 絶対値 abs(-5)
round 四捨五入 round(3.7)

6.2 行列関数

関数 機能
size 行列のサイズ size(A)
length ベクトルの長さ length(v)
det 行列式 det(A)
inv 逆行列 inv(A)
transpose 転置行列 A' または transpose(A)
eig 固有値・固有ベクトル eig(A)
rank 行列の階数 rank(A)

7. 制御構造

7.1 条件分岐(if文)

x = 5;
if x > 0
    disp('xは正の数です');
elseif x < 0
    disp('xは負の数です');
else
    disp('xは0です');
end

7.2 switch文

grade = 'A';
switch grade
    case 'A'
        disp('優秀');
    case 'B'
        disp('良好');
    case 'C'
        disp('可');
    otherwise
        disp('不可');
end

7.3 for文(繰り返し処理)

% 基本的なfor文
for i = 1:5
    disp(['i = ', num2str(i)]);
end

% 配列を使ったfor文
values = [2, 4, 6, 8, 10];
for val = values
    disp(['値: ', num2str(val)]);
end

7.4 while文

i = 1;
while i <= 5
    disp(['i = ', num2str(i)]);
    i = i + 1;
end

8. 関数の作成

8.1 関数ファイルの作成

MATLABでは、独自の関数を作成することができます。関数は.mファイルとして保存します。

function result = my_function(x, y)
    % MY_FUNCTION - 二つの数値を加算する関数
    %   result = my_function(x, y) は x と y の和を返す
    
    result = x + y;
end

8.2 複数の出力を持つ関数

function [sum_val, diff_val, prod_val] = calc_operations(a, b)
    % CALC_OPERATIONS - 複数の演算を行う関数
    
    sum_val = a + b;
    diff_val = a - b;
    prod_val = a * b;
end

% 使用例
[s, d, p] = calc_operations(10, 5);

8.3 無名関数(匿名関数)

% 無名関数の定義
f = @(x) x.^2 + 2*x + 1;

% 使用例
result = f(3);  % 16を返す

% 複数の引数を持つ無名関数
g = @(x, y) x.^2 + y.^2;
result = g(3, 4);  % 25を返す

9. データの可視化

9.1 基本的なプロット

% 基本的な2次元プロット
x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);
title('正弦波');
xlabel('x');
ylabel('sin(x)');
grid on;

9.2 複数のプロット

% 一つのグラフに複数のプロット
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);

figure;
plot(x, y1, 'r-', x, y2, 'b--');
legend('sin(x)', 'cos(x)');
title('三角関数');
xlabel('x');
ylabel('y');
grid on;

9.3 subplot(複数グラフの表示)

x = 0:0.1:2*pi;

figure;
subplot(2, 2, 1);
plot(x, sin(x));
title('sin(x)');

subplot(2, 2, 2);
plot(x, cos(x));
title('cos(x)');

subplot(2, 2, 3);
plot(x, tan(x));
title('tan(x)');
ylim([-5, 5]);

subplot(2, 2, 4);
plot(x, exp(x));
title('exp(x)');

9.4 3次元プロット

% 3次元プロット
t = 0:0.1:4*pi;
x = cos(t);
y = sin(t);
z = t;

figure;
plot3(x, y, z);
title('3次元螺旋');
xlabel('X');
ylabel('Y');
zlabel('Z');
grid on;

10. ファイル操作

10.1 データの保存と読み込み

% データの保存
A = rand(5, 5);
save('mydata.mat', 'A');  % .matファイルとして保存

% データの読み込み
load('mydata.mat');  % 変数Aが復元される

% CSVファイルの読み書き
csvwrite('data.csv', A);  % CSV形式で保存
B = csvread('data.csv');  % CSV形式で読み込み

10.2 テキストファイルの操作

% ファイルの書き込み
fid = fopen('output.txt', 'w');
fprintf(fid, 'Hello, MATLAB!\n');
fprintf(fid, 'Number: %d\n', 42);
fclose(fid);

% ファイルの読み込み
fid = fopen('output.txt', 'r');
content = fread(fid, '*char')';
fclose(fid);
disp(content);

11. デバッグとエラー処理

11.1 デバッグの基本

MATLABでは、エディター内でブレークポイントを設定することで、プログラムの実行を一時停止し、変数の値を確認できます。

  • 行番号の左側をクリックしてブレークポイントを設定
  • F5キーでプログラムを実行
  • F10キーでステップ実行
  • F11キーでステップイン
  • 変数の値はワークスペースで確認

11.2 エラー処理(try-catch文)

try
    % エラーが発生する可能性のある処理
    result = 10 / 0;
catch ME
    % エラーが発生した場合の処理
    disp('エラーが発生しました:');
    disp(ME.message);
end

12. 実践的なTips

12.1 効率的なプログラミング

  • ベクトル化:ループの代わりに配列演算を使用
  • メモリ事前確保:大きな配列は事前に初期化
  • 適切なデータ型:メモリ効率を考慮した型選択
  • コメント:コードの可読性を向上
% 悪い例(遅い)
result = [];
for i = 1:1000
    result = [result, i^2];
end

% 良い例(速い)
result = zeros(1, 1000);  % 事前確保
for i = 1:1000
    result(i) = i^2;
end

% さらに良い例(ベクトル化)
result = (1:1000).^2;

12.2 便利なコマンド

コマンド 機能
tic, toc 実行時間測定 tic; [処理]; toc;
disp 値の表示 disp('Hello')
fprintf フォーマット出力 fprintf('x = %.2f\n', x)
input ユーザー入力 x = input('値を入力: ')
pause 実行の一時停止 pause(2)

13. 学習リソース

13.1 公式リソース

  • MATLAB入門(無料オンラインコース):MathWorks公式の対話型学習コース
  • MATLAB Online:ブラウザ上でMATLABを使用可能
  • MATLAB Mobile:スマートフォンからMATLABにアクセス
  • ドキュメンテーション:包括的なリファレンスとチュートリアル

13.2 効果的な学習方法

  1. 基本概念の理解:行列演算の基本を理解する
  2. 実践練習:簡単な問題から始めて段階的に複雑化
  3. プロジェクト指向:実際の問題解決に応用
  4. コミュニティ活用:MATLAB Centralやフォーラムの活用
  5. 継続的学習:新機能や高度な技術の習得

14. まとめ

本記事では、MATLAB初心者が知っておくべき基本的な知識を網羅的に解説しました。MATLABは非常に強力なツールですが、基本をしっかりと理解することで、効率的に活用できるようになります。

重要なポイントをまとめると:

  • MATLABではすべてのデータが行列として扱われる
  • ベクトル化を意識することで効率的なプログラムが書ける
  • 豊富な組み込み関数を活用する
  • デバッグ機能を使って問題を特定・解決する
  • 継続的な学習と実践が重要

今後は、特定の分野(信号処理、画像処理、機械学習など)に特化した学習を進めることをお勧めします。MATLABの強力な機能を活用して、様々な問題解決に挑戦してください。

参考文献・リンク:

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?