Moving the contents in the cell array

53 vues (au cours des 30 derniers jours)
Gopalakrishnan venkatesan
Commenté : Walter Roberson le 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

Réponses (4)

Stephen23
Stephen23 le 2 Sep 2016
Modifié(e) : Stephen23 le 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 le 2 Sep 2016
data = {'abc' , 'def' , 'ghi'}
data1([4 5 6])=data
  4 commentaires
Bachtiar Muhammad Lubis
Bachtiar Muhammad Lubis le 10 Jan 2019
how if we have a cell that contains binary image or another image. how can we move that image that was stored o a new variable? so that we can show it using imshow().
Walter Roberson
Walter Roberson le 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} );

Connectez-vous pour commenter.


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

Connectez-vous pour commenter.


KSSV
KSSV le 2 Sep 2016
data = [cell(1,3) data]
  2 commentaires
Gopalakrishnan venkatesan
If i get the index as [4 7 9] then above does it work. I will get the random index and based on the index number i need the place the contents in the cell array
KSSV
KSSV le 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...

Connectez-vous pour commenter.

Catégories

En savoir plus sur Workspace Variables and MAT-Files dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by