Generating multiple max values from various data sets

4 visualizaciones (últimos 30 días)
Andy Huynh
Andy Huynh el 29 de Abr. de 2020
Comentada: Andy Huynh el 3 de Mayo de 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,

Respuesta aceptada

Mohammad Sami
Mohammad Sami el 29 de Abr. de 2020
Editada: Mohammad Sami el 29 de Abr. de 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 comentarios
Walter Roberson
Walter Roberson el 1 de Mayo de 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 el 3 de Mayo de 2020
All sorted. Thank you guys much appreciated!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Productos


Versión

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by