MATLAB Answers

Moving the contents in the cell array

77 views (last 30 days)
Gopalakrishnan venkatesan
Commented: Walter Roberson on 10 Jan 2019
data = {'abc' , 'def' , 'ghi'}
I have a cell array named data. Now i need to move the contents to another index in the same array and delete the older contents.
for example: data([4 5 6]) = data
This will give the result as data = {'abc' , 'def' , 'ghi', 'abc' , 'def' , 'ghi'}. Instead of this i just need to move the contents based on the index number and empty the contents in the older position.
Answer should be like this,
data = {[],[],[],'abc' , 'def' , 'ghi'}
How can i do it?
Thanks a lot

Answers (4)

Stephen Cobeldick
Stephen Cobeldick on 2 Sep 2016
Edited: Stephen Cobeldick on 2 Sep 2016
>> data = {'abc' , 'def' , 'ghi'};
>> data(4:6) = data;
>> data(1:3) = {[]}
data =
[] [] [] 'abc' 'def' 'ghi'
OR
>> data = [repmat({[]},1,numel(data)),data]
data =
[] [] [] 'abc' 'def' 'ghi'
OR
>> data(4:6) = {[]};
>> data = circshift(data,[1,3])
data =
[] [] [] 'abc' 'def' 'ghi'
OR
>> tmp = {[]};
>> data = circshift([data,tmp([1,1,1])],[1,3])
data =
[] [] [] 'abc' 'def' 'ghi'
OR
>> data(2,:) = {[]};
>> data = reshape(flipud(data)',1,[])
data =
[] [] [] 'abc' 'def' 'ghi'
OR
>> data = repmat(data,1,2);
>> data(1:3) = {[]}
data =
[] [] [] 'abc' 'def' 'ghi'

Azzi Abdelmalek
Azzi Abdelmalek on 2 Sep 2016
data = {'abc' , 'def' , 'ghi'}
data1([4 5 6])=data
  4 Comments
Walter Roberson
Walter Roberson on 10 Jan 2019
new_variable = name_of_cell{row_index, column_index};
imshow(new_variable)
but note that imshow() would be happy with
imshow( name_of_cell{row_index, column_index} );

Sign in to comment.


KSSV
KSSV on 2 Sep 2016
data = {'abc' , 'def' , 'ghi'} ;
iwant = cell(1,6) ;
iwant(4:6) = data ;
  1 Comment
Gopalakrishnan venkatesan
I want to move it in the same cell array. Not by shifting it to another new cell array

Sign in to comment.


KSSV
KSSV on 2 Sep 2016
data = [cell(1,3) data]
  2 Comments
KSSV
KSSV on 2 Sep 2016
That case you have to initialize the cells empty with some name...and replace your data with the indices...like get iwant and rename it as data again...

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!