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

12 次查看(过去 30 天)
颯汰
颯汰 2025-9-24,5:36
回答: Akira Agata 2025-9-24,6:51
行列からfor文などを用いて各行ごとに名前を付けてデータを抽出する方法を教えていただきたいです。
イメージとしてはn行目のデータ全てをD(n)などといった名前を付けてそこに格納するといった処理を行列全体に対して行いたいです。

回答(1 个)

Akira Agata
Akira Agata 2025-9-24,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]

类别

Help CenterFile Exchange 中查找有关 構造体 的更多信息

标签

产品


版本

R2024b

Community Treasure Hunt

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

Start Hunting!