Using a for loop for a structure

I have a 1x1 structure with 10 field elements 'trial1','trial2',etc. each field corresponds to a ~3000x3 matrix (the matrices are not all the same length). I want to manipulate the 3rd column of each matrice and return it back into the matrix and structure. So far I have the code below, but I'm getting an error "Reference to non-existent field 'field'." Does anyone know what I'm doing wrong? I'm pretty new to structures and cell arrays.
for field = fieldnames(s)
s.field{1}(:,3) = s.field{1}(:,3).*(1/pconv).*(1/Vin)+patm;
end

1 Comment

I believe I fixed it, needed to insert parentheses around "field". This works
for field = fieldnames(s)
s.(field{1})(:,3) = s.(field{1})(:,3).*(1/pconv).*(1/Vin)+patm;
end

Sign in to comment.

Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 4 Feb 2018

Edited:

on 4 Feb 2018

Community Treasure Hunt

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

Start Hunting!