私はMATLABの完全な初心者であり、ここでいくつかの助けを見つけたいと思っています。1つの大きなマトリックスにまとめて80人のモデル予測結果があります。大きな行列から各個人のデータを抽出し、それらを新しい変数/行列に割り当て、追加の計算を行ってから、必要に応じて特定の情報をプロットする必要があります。
そうするために、私はループ関数を使用してスクリプトを作成しようとしていますが、複雑な、またはより正確には、原始的な方法で!
簡略化した例:私の行列は次のように呼ばれます:All_Indi_Data ....その次元は:600行x21列
%Column 1: grouping variable (e.g., code or ID with values 1,2,3,4,5, etc.);
%Column 2: independent var.;
%Column 3: t;
%Column 4: OBS;
%Column 5: PRED;
i= length (All_Indi_Data);
%% First Indi.
q=1; % indicating the ID of the indi for which I want to extract the data
j=1; % variable added to insure writing start from the first row
for r=1:i
if All_Indi_Data (r,1)==q
Indi_1 (j,1:21) = All_Indi_Data (r,1:21)
j=j+1
end
end
%% Second Indi.
q=q+1
j=1
for r=1:i
if All_Indi_Data (r,1)==q
Indi_2 (j,1:21) = All_Indi_Data (r,1:21)
j=j+1
end
end
.
.
.
1)私の最初の質問は、ループ関数の有無にかかわらず、より簡単な方法でこれらのデータを新しい変数(Indi_1、Indi_2など)に割り当てることができるかどうかです。よろしくお願いします。
2)多くの時間とスペースを無駄にすることなく(コードのコア部分を再コピーするために)前述の大きなマトリックスからこれらの選択された部分(グループ化変数、たとえばIndi_1のデータに従って)をプロットするコードまたは方法はありますか?そして再び)スクリプトのために、そしてループ関数を使用していますか?!言い換えると、ループ関数とグループ化変数を使用して、関心のある値を検出し、それらをプロットしたいと思います(たとえば、最初から最後まで、各個人の列4のデータを含む列3のデータ)?!
私は自分の問題を明確に説明し、専門家から何かを聞くことを望んでいます:) ...
よろしくお願いします。