Putting NULLs in between the string array.
8 次查看(过去 30 天)
显示 更早的评论
I have string array A={'a','b','c','d','e'}, and index vector index=[1,3,5]. I want to put NULL values at this location and shift other values. For example my output should be like this: Output={[],'a','b',[],'c','d',[],'e'}. How can I do that.
0 个评论
采纳的回答
Simon Chan
2022-3-30
Hope I understand it correctly, try this:
A={'a','b','c','d','e'};
index=[1,3,5];
newindex = index+(0:length(index)-1);
N = length(A)+length(index);
Output = repelem({''},1,N);
Output(~ismember(1:N,newindex))=A
4 个评论
Simon Chan
2022-3-30
编辑:Simon Chan
2022-3-30
May I know the definition of the index?
For the previous answer, I assume the empty cell happens before the 1st, 3rd and 5th letters.
Did your definition refers to the location of the empty positions like the following?
A={'a','b','c','d','e'};
index=[1,2,3,5];
N = length(A)+length(index);
Output = repelem({''},1,N);
Output(~ismember(1:N,index))=A
更多回答(1 个)
Mathieu NOE
2022-3-30
hello
here you are
A={'a','b','c','d','e'};
index=[1,3,5];
%% main code
ll = numel(A)+numel(index);
index_comp = (1:ll);
index2 = index + (0:numel(index)-1);
index_comp(index2) = [];
Output = cell(1,ll);
Output(index_comp) = A
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!