Converting a comma separated list into an array concatenates them.
139 ビュー (過去 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 件のコメント
採用された回答
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 件のコメント
その他の回答 (1 件)
Captain Karnage
2023 年 3 月 29 日
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 件のコメント
参考
カテゴリ
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!