How to convert a char array field in a struct array to a string field in a vectorized fashion.
123 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
William Bahn
am 29 Okt. 2021
Kommentiert: William Bahn
am 29 Okt. 2021
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 Kommentare
Akzeptierte Antwort
Stephen23
am 29 Okt. 2021
S = struct('code',{'CO128','TX457'});
S.code % checking
tmp = num2cell(string({S.code}));
[S.code] = tmp{:};
S.code % checking
Weitere Antworten (1)
Fangjun Jiang
am 29 Okt. 2021
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 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!