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

조회 수: 8 (최근 30일)
颯汰
颯汰 2025년 9월 24일
답변: Akira Agata 2025년 9월 24일
行列からfor文などを用いて各行ごとに名前を付けてデータを抽出する方法を教えていただきたいです。
イメージとしてはn行目のデータ全てをD(n)などといった名前を付けてそこに格納するといった処理を行列全体に対して行いたいです。

답변 (1개)

Akira Agata
Akira Agata 2025년 9월 24일
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!