Generating multiple max values from various data sets

5 vues (au cours des 30 derniers jours)
Andy Huynh
Andy Huynh le 29 Avr 2020
Commenté : Andy Huynh le 3 Mai 2020
Hello,
At the moment my code reads through 37 data sets and grabs the max of each spradsheet and outputs the max pressure readings from each of the sheets for 31 points. So at the end I have 31 columns and 37 rows.
I am trying to alter the code so it would give me an output of the top 10 peaks of each instead of 1 for each point. That way I am able to take an average of it all.
I am struggling to sort the values and make it output the 10 for each file. I can't use maxk because I am using an older version.
This is my code at the moment.
Temp = xlsread('C;\Temperature Data.xlsx','B:B');
angle = 0:10:360;
nports = 64;% including the two ports for the reference Pitot static tube
Uinf = zeros(length(angle),1);
Max = zeros(length(angle),(nports-2)/2);
for ii = 1:length(angle)
load(['20200401_Existing_',num2str(angle(ii)),'.mat']); % loading the mat file -
% Note: if you are using windows machine, use backward slash in the folder address
rho = 101325./((Temp(ii) + 273.15)*286.9); % ideal gas equation
Uinf(ii) = sqrt(mean(2*abs(data{:,2}-data{:,3}))./rho); % free stream velocity
press = sqrt(2*abs(data{:,4:2:end}-data{:,5:2:end})./rho)./Uinf(ii);
Max(ii,:) = max(press,[],1); % Maximum of pressure fluctuations
end
xlswrite('Test_Max',Max);
Thank you,

Réponse acceptée

Mohammad Sami
Mohammad Sami le 29 Avr 2020
Modifié(e) : Mohammad Sami le 29 Avr 2020
You can use the sort function to sort the variable in descending order.
I changed the max to a cell array, so that you can store the top 10 rows.
If you are comfortable, you can also use a 3 dimensional matrix.
Max = cell(length(angle),1);
%....
%....
press_sorted = sort(press,'descend');
Max{ii} = press_sorted(1:10,:);
%....
  7 commentaires
Walter Roberson
Walter Roberson le 1 Mai 2020
I am not clear as to whether you currently have the line
Max = vertcat(Max{:}); % concatenate
in your code? After that line, Max will no longer be a cell array and you would not be able to
Max{ii} = press_sorted(1:10,:);
Andy Huynh
Andy Huynh le 3 Mai 2020
All sorted. Thank you guys much appreciated!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Produits


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by