I have a folder containing the following files:

Every file has the same format, but for a different time step:

First (headerline): N, time, xmin, ymin, zmin, xmax, ymax, zmax

N Lines: x, y, z, vx, vy, vz, rad, q1, q2, q3, omex, omey, omez, xi

where N is the number of particles.

(x,y,z) are the coordinates

(vx, vy, vz) are the velocities

rad is radius of particle

time is time step

I have split the format into 3 seperate cell arrays as follow:

expData with format x, y, z, rad, z +rad, vol

vol is the volume of the particle, which I calculated from radius

velData with format vx, vy, vz, mag

runData with N, time, xmin, ymin, zmin, xmax, ymax, zmax

rhoPart = 2500;

files = dir(fullfile(uigetdir,'*.data*'));

[~,Index] = natsort({files.name});

files = files(Index);

expData = cell(length(files),1);

k = 1;

for i = 1:length(files)

fid = fopen(fullfile(files(i).folder,files(i).name),'r');

dataRead = textscan(fid,'%f %f %f %f %f %f %f %f %f %f %f %f %f %f','HeaderLines',1);

frewind(fid);

runData{k} = strsplit(fgetl(fid), ' ');

expData{k} = [dataRead{1}(:,1) dataRead{2}(:,1) dataRead{3}(:,1) dataRead{7}(:,1) dataRead{3}(:,1)+dataRead{7}(:,1) rhoPart*(4/3)*pi*(dataRead{7}(:,1).^3)];

velData{k} = [dataRead{4}(:,1) dataRead{5}(:,1) dataRead{6}(:,1) sqrt(dataRead{4}(:,1).^2 + dataRead{5}(:,1).^2 + dataRead{6}(:,1).^2)];

fclose(fid);

k = k + 1;

end

With the following code I calculated the total mass of particles for every time step:

for i = 1:length(files)

particlesInSilo{i} = find(expData{i,1}(:,3)>0.3);

siloMass{i} = sum(expData{i,1}(cell2mat(particlesInSilo(i)),6));

end

Thus,

the total mass of siloV1.data.1787 is 3.6317 kg at time step 1.900577757 s

the total mass of siloV1.data.1820 is 3.4481 kg at time step 1.935675163 s

....

the total mass of siloV1.data.2714 is 0 kg at time step 2.886495821 s

With the following code I found when the total mass is 0 kg:

for i = 1:length(files)

siloMass_zero = find(siloMass{1,i}(:)<=0);

end

I want to find the corresponding time step when the total mass is 0 kg. How can I do that?

Note that the codes I presented in this post are only sections of my code.

## 4 Comments

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1005208

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1005208

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1008157

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1008157

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1008178

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1008178

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1008277

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/592132-find-value-in-another-cell-array-based-on-condition#comment_1008277

Sign in to comment.