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

1 次查看(过去 30 天)
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.

回答(1 个)

Athul Prakash
Athul Prakash 2020-5-13
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!

类别

Help CenterFile Exchange 中查找有关 DICOM Format 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by