MATLAB Answers

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

1 view (last 30 days)
Hi,
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.

Accepted Answer

Mischa Kim
Mischa Kim on 7 Sep 2016
Christoph, simply use round brackets instead
a = {1,2,3};
a(2) = []
  3 Comments
Mischa Kim
Mischa Kim on 7 Sep 2016
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.

More Answers (1)

Noam Weissman
Noam Weissman on 7 Sep 2016
Edited: Noam Weissman on 7 Sep 2016
txt = txt([2 3 5]);
% or
txt([1 4 ])=[];
  1 Comment
Christoph Thale
Christoph Thale on 7 Sep 2016
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.

Community Treasure Hunt

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

Start Hunting!