How do I find if a value exists already in cell array's column, and then select the column & row to store some output data based on whether its existing or new?

32 visualizaciones (últimos 30 días)
I have a set of data files I am reading in from the drive. There are about 60 unique IDs, each of which can have up to six files (days 1-6, and order matters), but some are missing at random. I can read in the day number (daynum) and ID from the files. The files are named such that all the extant files for each ID are in serial before any files from the next ID.
I wrote a script to give me the means of the data I am interested in, but I'm running into problems trying to setup my output matrix such that the output fits the existing database (one row per ID, including blanks for missing data), like so: ID, Day1AvgA (D1A), Day1AvgB (D1B), Day1AvgC (D1C), D2A, D2B, D2C, .... D6C.
I have code that handles the horizontal shift:
if daynum == 1; output{ct,2} = avgrest; output{ct,3} = avgbrwo; output{ct,4} = avgbrwi; elseif daynum=2...end
for the six days, where ct is the for-loop's incremental counter.
Where I'm getting hung up is trying to solve the issue of getting all of the means for each ID into one row. I eventually went to a blunt approach using "try":
try; if id == output{ct-1,1}; Y = ct-1; end; end
... and so on up to ...
try; if id == output{ct-5,1};Y = ct-5; end; end
since that would compare the ID against that of previous six files. While inefficient, it seemed like it might work, but it created gaps between the array rows that contain data. When I tried to solve that problem with an else statement in the last try/if statement, using
else Y = find(cellfun('isempty', output),1);
to get it Y to correspond with the first empty row if it is unique, that option essentially negated the try statements.

Respuesta aceptada

Hiro Yoshino
Hiro Yoshino el 4 de Feb. de 2020
There are many useful functions for preprocessing the data:
Why don't you start using them first to get rid of rubbish in the data?
  2 comentarios
Andrew Teer
Andrew Teer el 4 de Feb. de 2020
Editada: Andrew Teer el 4 de Feb. de 2020
Do you know if the the "remove missing" function would remove just the rows that are completely empty? I need to preserve the columnar locations of the data.
Hiro Yoshino
Hiro Yoshino el 4 de Feb. de 2020
Yes. You should check with the documentation I attached rather than asking someone for the sake of the accuracy of information.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by