I am having trouble creating a for loop to repeat a set of code completed for 1 subject to the next 34 (in total 35 subjects). The data set has a row of ECG data per subject and it was extracted by dataN_1 = ecg_data (:,1). The data was later filtered and mean HR and RR intervals for the ECG were calculated for subject 1. How do I repeat everything but with different names e.g. mean_HR_subject1, mean_HR_subject2, etc. to calculate the mean and std for HR and HR variability for the 35 subjects?
Thank you!

 Respuesta aceptada

Torsten
Torsten el 1 de Dic. de 2023
Movida: Torsten el 1 de Dic. de 2023

0 votos

for i = 1:35
dataN_(i) = ecg_data (:,i);
mean_HR_subject(i) = ...
...
end

Más respuestas (1)

Walter Roberson
Walter Roberson el 1 de Dic. de 2023

0 votos

If you need to compute different field names for a struct, or different property names for objects, you can use dynamic field names. It would look something like this,
for iteration = 1 : 35
HRfield = "HR_subject" + iteration;
mHRfield = "mean_" + HRfield;
data_in = TheStruct.(HRfield);
data_out = some calculation on data_in
TheStruct.(mHRfield) = data_out;
end
See also structfun
There are also useful techniques working with tables, such as rowfun and varfun and groupsummary -- you could potentially convert to table using struct2table

Productos

Versión

R2023b

Etiquetas

Preguntada:

el 1 de Dic. de 2023

Respondida:

el 1 de Dic. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by