How can I use the split function with multiple delimiters?
42 次查看(过去 30 天)
显示 更早的评论
I am trying to use the split command on a cell Array but I am getting this error:
Element 77 of the text contains 2 delimiters while the previous elements have 1. All
elements must contain the same number of delimiters.
The problem is that in the line below
software_logical/forIteratorSubsystem/Out1. Some of the elements in my have different number of delimiters.
software_math/sum
This the code I am using below. What can I do so that my program will split at the last delimiter ('/')
cellArray = split(compareBlocks,'/');
cellArray = split(compareBlocks,'/',2); %I even tride using this but it does not work
0 个评论
采纳的回答
Stephen23
2020-2-27
编辑:Stephen23
2020-2-27
>> str = 'software_logical/forIteratorSubsystem/Out1';
>> [one,two] = fileparts(str)
one = software_logical/forIteratorSubsystem
two = Out1
>> str = 'software_math/sum';
>> [one,two] = fileparts(str)
one = software_math
two = sum
For character vectors in a cell array call fileparts inside of cellfun.
4 个评论
Stephen23
2020-2-28
cellArray = cell(fileparts(compareBlocks))
will place the first output (i.e. the "path") of the split compareBLocks variable into a scalar cell array, and discards the rest. There does not seem to be much point in doing that.
Lets try my answer on a cell array, using cellfun as I mentioned:
>> C = {'software_logical/forIteratorSubsystem/Out1', 'software_math/sum'};
>> [one,two] = cellfun(@fileparts, C, 'uni',0);
>> one{:}
ans = software_logical/forIteratorSubsystem
ans = software_math
>> two{:}
ans = Out1
ans = sum
更多回答(1 个)
Akira Agata
2020-2-28
How about using cellfun, like:
% Sample cell array
C = {'software_logical/forIteratorSubsystem/Out1', 'software_math/sum'};
% Apply 'split' for each cell
parts = cellfun(@(x) split(x,'/'),C,'UniformOutput',false);
The result is like this:
>> parts{1}
ans =
3×1 cell array
{'software_logical' }
{'forIteratorSubsystem'}
{'Out1' }
>> parts{2}
ans =
2×1 cell array
{'software_math'}
{'sum' }
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!