How to delete the row from cell array?

29 次查看(过去 30 天)
I have a cell arraywhich has 10*6 matrix in it. How can I delete a row from the matrix? thanks in advance.

采纳的回答

Matt J
Matt J 2013-7-10
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 个评论
Stephen23
Stephen23 2018-9-28
@Ram: you will have to use a loop.
Matt J
Matt J 2018-9-28
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 )

请先登录,再进行评论。

更多回答(3 个)

Azzi Abdelmalek
Azzi Abdelmalek 2013-7-10
row=2
A(row,:)=[]
  6 个评论

请先登录,再进行评论。


John
John 2013-7-10
编辑:John 2013-7-10
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 个评论
John
John 2013-7-10
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 2013-7-10
[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?

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by