how to convert the entries of a structure from single to double?

12 views (last 30 days)
Hello,
I have a big structure. First column is numbers, but other columns (each cell of the column) are each a vector. Those vectors show as single, I want to convert them all to double. There are almost 300 of those vector-cells.
Can you help there?

Answers (2)

Walter Roberson
Walter Roberson on 21 Mar 2019
new_cell_array = cellfun(@double, existing_cell_array, 'uniform', 0);
  4 Comments
Walter Roberson
Walter Roberson on 21 Mar 2019
I do not understand what you mean by "column" with respect to a struct ? You have a structure array, and a column of a structure array would be like YourStructure(:, 3) for column three, giving a scalar struct (since you only have one row), but a struct itself cannot be numeric type.
Are you talking about fields? That fields number 2, 3, 4, 5, 6, 7 show up as single ?
Would it be acceptable to convert all of the fields to double, or are there some non-numeric fields?
yonatan s
yonatan s on 31 Dec 2019
to fix Error using cellfun Input #2 expected to be a cell array, was struct instead, try:
new_cell_array = structfun(@double, existing_cell_array, 'uniform', 0);

Sign in to comment.


David Pesetsky
David Pesetsky on 21 Mar 2019
For each of the 6 columns that are vectors, this works:
for i=1:50
tmp_serie(i).Fedge = cast(tmp_serie(i).Fedge, 'double');
end
I'm all set.

Categories

Find more on Structures in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!