How to find the mean of a matrice based on a value in another matrice
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello everyone,
I have two matrices (attached file data_x.mat contains two matrices/parameters) namely 'month' and 'sa'. I want to get, the mean of 'sa' which correspond to values, for example of month = 9 only. Anyone knows how to handle this?
Thanks
댓글 수: 0
채택된 답변
Star Strider
2024년 10월 8일
This returns all of the monthly means for all the months —
LD = load('data_x.mat')
T1 = table(LD.month, LD.sa, 'VariableNames',{'month','sa'})
[Um,~,ix] = unique(T1.month, 'stable');
mmeans = accumarray(ix, (1:numel(ix)).', [], @(x)mean(T1.sa(x)));
Monthly_Means = table(Um, mmeans, 'VariableNames',{'month','mean'})
.
댓글 수: 4
추가 답변 (1개)
Sameer
2024년 10월 8일
편집: Sameer
2024년 10월 8일
Hi Adi
To calculate the mean of 'sa' values corresponding to a specific 'month' (e.g., month = 9), you can follow the below approach:
% Load the data from the .mat file
data = load('data_x.mat');
% Extract the 'month' and 'sa' matrices
month = data.month;
sa = data.sa;
% Find indices where month is equal to 9
indices = find(month == 9);
% Extract the corresponding 'sa' values
sa_selected = sa(indices);
% Calculate the mean
mean_sa = mean(sa_selected);
fprintf('The mean of sa values for month = 9 is: %.2f\n', mean_sa);
I hope this helps!
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!