我希望能够方便地确保结构数组的字段仅包含字符串(而不包含字符数组)。例如,
S(1).f='abc'; S(2).f='asdfa'; S(3).f="aegwer";
如果有的话
setfield(S(1),'f',string(S(1).f))
S(1).f
将成功转换为"abc"
。
但是
arrayfun(@(s)setfield(s,'f',string(s.f)),S)
不仅无法将'f'下的所有字段值都设置为字符串,而且实际上将'f'下的所有字段值都转换为字符数组。
为什么arrayfun
使string()
成为char()
?还是其他?
我正在使用的MATLAB版本:R2018a