Accessing elements in a structure
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
C.G.
el 27 de Jul. de 2021
I have 2 matlab files, both containing 2 elements: velocity and points.
i have loaded these two files into a structure, but now I want to access each individual field in the velocity column and do some calculations in it (e.g. work out the mean value).
I am struggling to access each field, could anybody help me please?
file = dir('*.mat');
num_files = length(file);
[~, index] = natsort({file.name});
filelist = file(index);
out = load(filelist(1).name);
for k = 1:numel(filelist)
out(k) = load(filelist(k).name);
end
1 comentario
Stephen23
el 27 de Jul. de 2021
Editada: Stephen23
el 27 de Jul. de 2021
Unless you have a good reason for using NATSORT you should probably use NATSORTFILES:
which lets you write simpler code by directly sorting the output from DIR:
P = 'absolute or relative filepath to where the files are saved';
S = dir(fullfile(P,'*.mat'));
S = natsortfiles(S); % <------- much simpler!
for k = 1:numel(S)
F = fullfile(P,S(k).name)
... etc
end
Respuesta aceptada
KSSV
el 27 de Jul. de 2021
Editada: KSSV
el 27 de Jul. de 2021
file = dir('*.mat'); %fine all the .mat files
num_files = length(file); %record how many files have been found
[~, index] = natsort({file.name}); %sort the files into order
filelist = file(index);
GTav = zeros(numel(filelist),1)
for k = 1:numel(filelist)
load(filelist(k).name); % I hope the structure is named out in every file
% For each cell in the velocity column of the structure
v1 = vel ;
%1. calculate the resultant velocity of each particle
ResV = sqrt((v1(:,1).^2) + (v1(:,2).^2) + (v1(:,3).^2));
%2. calculte the mean resultant velocity of all the particles
ResVav = mean(ResV);
%3. calculate the granular temperature of all the particles
GT = ResV-ResVav;
%4. calculate the average granular temperature for each field
GTav(k) = mean(GT);
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Structures en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!