Save mean values in additional column
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
j=1;
for i=1:rowC
if Allpeaks(i,2)>4.33&&Allpeaks(i,2)<5.13
Range1peaks(j,:)=Allpeaks(i,:);
j=j+1;
end
end
[aaaaa_DummyIdx,Peaks_index1]=sort(Range1peaks(:,3));
Arg_Range1peaks=Range1peaks(Peaks_index1(1:1:end,:),:);
Sputum_Idx(:,1) = unique(Arg_Range1peaks(:,3));
for i = 1:numel(Sputum_Idx(:,1))
ind=(Arg_Range1peaks(:,3)==Sputum_Idx(i,1));
MeanV1(i,1) = mean(Arg_Range1peaks(ind));
end
Mean1 = [MeanV1 Sputum_Idx(:,1)];
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/814854/image.jpeg)
Hello. After obtaining the N x 3 vector as shown in the picture above ([Range1 peaks]), I listed it in order of size in columns 3 through indexing ([Arg_Range1 peaks]).
In addition, the average values of column 1 values([Arg_Range1 peaks]) were saved for rows with the same values in column 3 ([Mean1]).
As shown in the rightmost figure, we would like to place mean values of [Mean1] corresponding to column 3 in column 4 of [Arg_Range1 peaks]. What should I do?
0 commentaires
Réponse acceptée
DGM
le 27 Nov 2021
Something like this
% dummy data
N = 15;
Range1peaks = [10*rand(N,1)-70 2*rand(N,1)+4 randi([0 5],N,1)]
% sort
[~,Peaks_index1] = sort(Range1peaks(:,3),1,'ascend');
Arg_Range1peaks = Range1peaks(Peaks_index1,:);
% append column, take mean, fill
Arg_Range1peaks = [Arg_Range1peaks zeros(size(Arg_Range1peaks,1),1)];
Sputum_Idx = unique(Arg_Range1peaks(:,3));
for i = 1:numel(Sputum_Idx)
ind=(Arg_Range1peaks(:,3)==Sputum_Idx(i));
Arg_Range1peaks(ind,4) = mean(Arg_Range1peaks(ind,1));
end
% show result
Arg_Range1peaks
0 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!