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

 Réponse acceptée

Matt J
Matt J le 10 Juil 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 commentaires

siddhesh rane
siddhesh rane le 10 Juil 2013
exactly..thanks a lot !!
Ram
Ram le 28 Sep 2018
@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
Stephen23
Stephen23 le 28 Sep 2018
@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 )

Connectez-vous pour commenter.

Plus de réponses (3)

Azzi Abdelmalek
Azzi Abdelmalek le 10 Juil 2013
row=2
A(row,:)=[]

6 commentaires

siddhesh rane
siddhesh rane le 10 Juil 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?
Will it be
A(1,1)(2,:) = []
row=2;
out=cellfun(@(x) x(setdiff(1:10,row),:),A,'un',0)
Shihao Wang
Shihao Wang le 26 Avr 2018
Thanks from 2018
Mehdi Maadir
Mehdi Maadir le 9 Juil 2021
Thanks from 2021
Tong Zhao
Tong Zhao le 16 Juin 2022
Thanks from 2022
Kris Hoffman
Kris Hoffman le 5 Juil 2022
Thanks from 2026

Connectez-vous pour commenter.

John
John le 10 Juil 2013
Modifié(e) : John le 10 Juil 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 commentaires

siddhesh rane
siddhesh rane le 10 Juil 2013
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.
siddhesh rane
siddhesh rane le 10 Juil 2013
thank you!! :)

Connectez-vous pour commenter.

siddhesh rane
siddhesh rane le 10 Juil 2013

0 votes

[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?

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by