Reputation: 169
In my matlab workspace I have structs, cells and variables . In need to convert all "double" type values into "single" type values.
For example from
4x33 double
I need to make it to
4x33 single
I have already used such piece of code:
s = whos;
disp(s)
for i = 1:length(s)
if strcmp(s(i).class,'double')
name = s(i).name;
disp(name);
assignin('base', name, single(evalin('base', name)));
end
end
And it works fine for variables which are stored in my workspace, but issue is that it cannot reach values which are stored in workspace in structs.
How can I achieve that?
Upvotes: 0
Views: 454
Reputation: 35525
The way to convert a double to single is
b=single(a)
.
You can use single
as a structfun:
a.c=5;
b=structfun(@single,a)
Upvotes: 2