How to delete the row from cell array?

I have a cell arraywhich has 10*6 matrix in it. How can I delete a row from the matrix? thanks in advance.

 Accepted Answer

Is this what you want:
>> A(1:2)={rand(10,6)}
A =
[10x6 double] [10x6 double]
>> row=2; A{1}(2,:)=[] %delete 1 row from 1 cell
A =
[9x6 double] [10x6 double]

4 Comments

exactly..thanks a lot !!
@matt J how to delete a each matrix with certian cell number. for example, cell matrix is [999*1][999*1][989*1][999*1][999*1]...[998*1]. Now from each cell matrix, i want to delete from 800 to end of cell matrix. how can i do that?
I tried cell{:,1}(801:end,1) = []; but getting error as A null assignment can have only one non-colon index. thanks in advance
@Ram: you will have to use a loop.
As Stephen says, you will have to use a loop, but you can also hide the loop with cellfun,
cellfun(@(c) c(1:800), yourCell, 'uni',0 )

Sign in to comment.

More Answers (3)

row=2
A(row,:)=[]

6 Comments

[A] [B] [C]
suppose i have 1*3 cell as shown above and A is a matrix of dimensions 3*3 and I want to delete second row of the A matrix. How should i do it?
Will it be
A(1,1)(2,:) = []
row=2;
out=cellfun(@(x) x(setdiff(1:10,row),:),A,'un',0)
Thanks from 2018
Thanks from 2021
Thanks from 2022
Thanks from 2026

Sign in to comment.

John
John on 10 Jul 2013
Edited: John on 10 Jul 2013
You can index out the rows like any standard array (the following code removes the second row):
x = {1 2 3; 4 5 6; 7 8 9}
x =
[1] [2] [3]
[4] [5] [6]
[7] [8] [9]
y = x([1 3],:)
y =
[1] [2] [3]
[7] [8] [9]

3 Comments

This will delete row of matrix in a cell. I have many elements in each matrix (in this case theres only one element) I want to delete a row from those matrices.
Ok I think I understand, you have a cell array that looks like the following:
A = {rand(5), 1}
A =
[5x5 double] [1]
You want to remove a row from the matrix in the first element of A. You can do the following:
A{1} = A{1}([1 2 4 5],1);
(this will remove the third row). Alternatively you can use Azzi Abdelmalek's method shown below:
A{1}(3,:) = []
I think this is what you are looking for.
thank you!! :)

Sign in to comment.

siddhesh rane
siddhesh rane on 10 Jul 2013
[A] [B] [C]
suppose i have 1*3 cell as shown above and A is a matrix of dimensions 3*3 and I want to delete second row of the A matrix. How should i do it?

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!