MATLAB Answers


How do i delete an exact cell from a cell-matrix?

Asked by Christoph Thale on 7 Sep 2016
Latest activity Commented on by Mischa Kim
on 7 Sep 2016
i have a 1x13 cell-txt-matrix which is read out of an excelsheet with
[num, txt, raw] = xlsread(___)
txt looks like that:
[test] [1.1.111] [2.2.2222] [empty cell] [3.3.3333]
the [ ] stands just for the cell. There are no brackets in it.
I am able to identify the coordinates from the cells i want to delete. The problem is, I cant delete these founded cells. I want to have this:
[1.1.111] [2.2.2222] [3.3.3333]
I tried to solve this problem with the approach:
txt{...} = []
The receiving:
[[]] [1.1.111] [2.2.2222] [[]] [3.3.3333]
I hope you understand my problem and have some satisfying advices.
Thanks a lot.


Sign in to comment.

2 Answers

Mischa Kim 님의 답변 7 Sep 2016
 채택된 답변

Christoph, simply use round brackets instead
a = {1,2,3};
a(2) = []


Heyja! That is genius but make no sense to me. Why do i adress cells with round brackets?
a(2) is a cell with size 1x1.
a{2} is the content of the above cell.
You want to delete the cell itself, not only its content.
I agree, this is not obvious.
There is a difference between removing a cell element and setting a cell element to "empty". Since the curly brackets are used to assign cell values, this approach is also used to assign an empty cell value. Therefore, there needs to be a different mechanism to remove a cell element. That is where the round brackets come in in.
Also note, that for matrices you use the same approach:
a = [1,2,3];
a(2) = []
a =
1 3

Sign in to comment.

Noam Weissman 님이 편집함. 7 Sep 2016

txt = txt([2 3 5]);
% or
txt([1 4 ])=[];

  1 Comment

Haha, of course i can solve it with your first attempt for this example but the cells i wont have in my cell-matrix are variable.
Thank you, the round brackets work fine.

Sign in to comment.