matrixから列ごとに要素を抽出する方法

12 views (last 30 days)
颯汰
颯汰 on 24 Sep 2025 at 5:36
Answered: Akira Agata on 24 Sep 2025 at 6:51
行列からfor文などを用いて各行ごとに名前を付けてデータを抽出する方法を教えていただきたいです。
イメージとしてはn行目のデータ全てをD(n)などといった名前を付けてそこに格納するといった処理を行列全体に対して行いたいです。

Answers (1)

Akira Agata
Akira Agata on 24 Sep 2025 at 6:51
eval 関数を使うことで実現できます。ただ、このヘルプページの「メモ」欄にもありますように、できれば避けたい方法でもあります。
代替案として、以下のように構造体のフィールドで分ける方法もありますが、いかがでしょうか?
% 対象となる配列
D = rand(10, 4);
% 行ごとに構造体のフィールドに分ける
s = struct();
for kk = 1:10
s.(compose("D%d", kk)) = D(kk, :);
end
% 結果を表示
disp(s)
D1: [0.5237 0.0402 0.0363 0.6189] D2: [0.3811 0.9967 0.6681 0.4017] D3: [0.1868 0.9224 0.6437 0.6154] D4: [0.3227 0.1117 0.0891 0.9121] D5: [0.1704 0.1570 0.5750 0.5346] D6: [0.6837 0.4689 0.0978 0.5264] D7: [0.9829 0.2950 0.3629 0.5137] D8: [0.3698 0.6417 0.2689 0.7353] D9: [0.7782 0.6810 0.1080 0.8027] D10: [0.1140 0.4911 0.7543 0.3089]

Categories

Find more on 構造体 in Help Center and File Exchange

Tags

Products


Release

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!