Matlab, Comma-separated string to Cell when it has blank e.g. 1,2,3,[空白],[空白]
Matlab, Comma-separated string to Cell when it has blank e.g. 1,2,3,[blank],[blank]
在 Matlab 中,
1. strsplit('a,b,c,', ',')
2. strsplit('a,b,c,,,', ',')
1和2的结果相同,
{{'a'}, {'b'}, {'c'}, {0×0 char}}
不过我想带
{{'a'}, {'b'}, {'c'}, {0×0 char}, {0×0 char}, {0×0 char}}
来自字符串
'a,b,c,,,'.
我在 strsplit 函数中尝试了 'CollapseDelimiters' 选项。
但它不适用于尾巴。
正如 UnbearableLighness 所建议的,CollapseDelimiters 有效,但您也可以使用 split
>> strsplit('a,b,c,,,', ',','CollapseDelimiters',false)
ans =
1×6 cell array
{'a'} {'b'} {'c'} {0×0 char} {0×0 char} {0×0 char}
>> split('a,b,c,,,', ',')'
ans =
1×6 cell array
{'a'} {'b'} {'c'} {0×0 char} {0×0 char} {0×0 char}
由于性能提升,我建议拆分
function profFunc
n = 1e5;
tic
for i = 1:n
x = strsplit('a,b,c,,,', ',','CollapseDelimiters',false);
end
toc
tic
for i = 1:n
x = split('a,b,c,,,', ',');
end
toc
end
>> profFunc
Elapsed time is 31.044903 seconds.
Elapsed time is 1.761662 seconds.
在 Matlab 中,
1. strsplit('a,b,c,', ',')
2. strsplit('a,b,c,,,', ',')
1和2的结果相同,
{{'a'}, {'b'}, {'c'}, {0×0 char}}
不过我想带
{{'a'}, {'b'}, {'c'}, {0×0 char}, {0×0 char}, {0×0 char}}
来自字符串
'a,b,c,,,'.
我在 strsplit 函数中尝试了 'CollapseDelimiters' 选项。 但它不适用于尾巴。
正如 UnbearableLighness 所建议的,CollapseDelimiters 有效,但您也可以使用 split
>> strsplit('a,b,c,,,', ',','CollapseDelimiters',false)
ans =
1×6 cell array
{'a'} {'b'} {'c'} {0×0 char} {0×0 char} {0×0 char}
>> split('a,b,c,,,', ',')'
ans =
1×6 cell array
{'a'} {'b'} {'c'} {0×0 char} {0×0 char} {0×0 char}
由于性能提升,我建议拆分
function profFunc
n = 1e5;
tic
for i = 1:n
x = strsplit('a,b,c,,,', ',','CollapseDelimiters',false);
end
toc
tic
for i = 1:n
x = split('a,b,c,,,', ',');
end
toc
end
>> profFunc
Elapsed time is 31.044903 seconds.
Elapsed time is 1.761662 seconds.