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.