Having trouble rewriting a DICOM file with metadata: converting table to structure

1 vue (au cours des 30 derniers jours)
Johnathan Zeng
Johnathan Zeng le 11 Mai 2020
Commenté : Rik le 13 Mai 2020
Currently, I have my metadata (from a different source) as follows:
Is there any way to convert a 216x2 table into a structure that is 1x1 but with 216 fields of 216 values? something more like this:
I have also attached the original metadata table (with some fields removed) as a reference.

Réponses (1)

Athul Prakash
Athul Prakash le 13 Mai 2020
Hi Johnathan,
Your issue may be solved this way:
% If 'T' is the variable holding the table,
C = table2cell(T);
C = C';
C = C(:);
S = struct(C{:})
It's farily interesting what's going in here, unde the hood.
We're trying to create a struct using the syntax: struct(field1, value1, field2, value2, ..., fieldN, valueN). So we need to be passing all 216*2=432 fields in this way.
To start with, we convert the table 'T' into a cell array which is easier to manipulate.
Then we linearize this 216x2 cell array into a one dimensional cell array. (We need to transpose the Cell Array first, to linearize in the right order)
Finally, we make use the fact that a cell array when indexed using {} in a range, would produce a comma-separated list which can be passed into functions where each element acts like a different function argument.
Hope it helps!

Catégories

En savoir plus sur DICOM Format dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by