How to convert a char array field in a struct array to a string field in a vectorized fashion.
123 次查看(过去 30 天)
显示 更早的评论
I have a struct array in which one of the fields is a character array. I need to convert it to a string scalar for all stuctures in the array. I have been unable to find a way to do this in a vectorized manner.
Example:
myArray = [struct("code", 'CO128'), struct("code", 'TX457'];
This is a toy data structure -- the real thing has dozens of fields in each element and tens of thousands of elements in the array. I have no control over the array format up to this point.
What I am trying to accomplish is the same thing that is performed by the following loop:
for i = 1:size(myArray,2)
myArray(i).code = string(myArray(i).code);
end
I am restricted to the functionality of the basic MATLAB R2021a installation (no optional toolboxes).
0 个评论
采纳的回答
Stephen23
2021-10-29
S = struct('code',{'CO128','TX457'});
S.code % checking
tmp = num2cell(string({S.code}));
[S.code] = tmp{:};
S.code % checking
更多回答(1 个)
Fangjun Jiang
2021-10-29
It can be done but not sure if it is more efficient than the simple for-loop
myArray=struct('code',{'a','ab','abc'})
myString=string({myArray.code})
myCell=mat2cell(myString,ones(1,size(myString,1)),ones(1,size(myString,2)))
myArray=struct('code',myCell)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!