How to delete the row from cell array?

30 views (last 30 days)
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

Matt J
Matt J on 10 Jul 2013
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
Stephen23
Stephen23 on 28 Sep 2018
@Ram: you will have to use a loop.
Matt J
Matt J on 28 Sep 2018
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)

Azzi Abdelmalek
Azzi Abdelmalek on 10 Jul 2013
row=2
A(row,:)=[]
  6 Comments

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
John
John on 10 Jul 2013
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.

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 Data Type Conversion 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!