Find maximum of an array in a for loop?

I need to calculate the maximum of each array from the load variable in the following for loop.
myDir = uigetdir;
myFiles = dir(fullfile(myDir,'*.txt'));
for k = 1:length(myFiles)
baseFileName = myFiles(k).name;
fullFileName = fullfile(myDir, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
num = readmatrix(fullFileName);
load = num(:,1)
ext = num(:,3)
plot(ext,load); hold on
grid on;
end

Respuestas (1)

dpb
dpb el 18 de Jun. de 2024
GENERAL GUIDANCE:
Do NOT name a variable load; it is a builtin in important MATLAB function; developing a habit of aliasing it will confuse things immeasruably when come to using .mat files.
myDir = uigetdir;
myFiles = dir(fullfile(myDir,'*.txt'));
N=length(myFiles);
MaxY=zeros(N,1); % preallocate for maxima
for k = 1:N
fullFileName = fullfile(myFiles(k).folder,myFiles(k).name); % use the results directly...
fprintf('Now reading %s\n', fullFileName);
data=readmatrix(fullFileName);
plot(data(:,1),data(:,3));
MaxY(k)=max(data(:,3));
if k==1, hold on; grid on; end
end
No need for copies of the original data just taking up memory...although MATLAB will not make a deep copy here.

2 comentarios

Brennan Lytle
Brennan Lytle el 18 de Jun. de 2024
Thank you. This worked great!
If I want to find the corresponding row value in column 1 with the maximum found in column 3, how could I add that into the loop?
dpb
dpb el 18 de Jun. de 2024
Read the doc for max -- look at the optional second output variable.

Iniciar sesión para comentar.

Categorías

Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.

Productos

Versión

R2023b

Etiquetas

Preguntada:

el 18 de Jun. de 2024

Comentada:

dpb
el 18 de Jun. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by