Putting NULLs in between the string array.
9 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Simon Chan
on 30 Mar 2022
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 Comments
Simon Chan
on 30 Mar 2022
Edited: Simon Chan
on 30 Mar 2022
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
More Answers (1)
Mathieu NOE
on 30 Mar 2022
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
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!