Converting a comma separated list into an array concatenates them.
53 次查看(过去 30 天)
显示 更早的评论
I was trying to convert a comma separated list of strings into a normal array. So B0005.cycle is a struct with some fields:

B0005.cycle.type is a comma separated list:

I tried to convert it into an array by doing this: [B0005.cycle.type] but it gives this output:

However I want ["charge", "discharge","charge","discharge",...]. So how do I go about this?
I have attached the mat file below.
0 个评论
采纳的回答
Captain Karnage
2023-3-29
编辑:Stephen23
2025-4-28
This can also be done in one line (using type for an example):
If you want a horizontal array:
typearr = string({B0005.cycle.type});
If you want a vertical array:
typearr = string({B0005.cycle.type}.');
{} will convert the comma separated list of char to cell array of char
.' will transpose the cell array
string will convert cell arrays of char to arrays of string
0 个评论
更多回答(1 个)
Atul Upadhyay
2020-6-19
I can see that you are trying to convert a comma separated list of strings to normal array. You can do it like following.
arr={B0005.cycle.type};
newarr=[];
for x=arr
newarr=[newarr; string(x{1})];
end
Refer to the following documentation to know more about comma-separated lists in MATLAB.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!