# How to properly delete cell element ?

593 visualizaciones (últimos 30 días)
RuiQi el 27 de Jun. de 2016
Comentada: Josep Llobet el 3 de Ag. de 2022
I have a 1x12 cell. How do i remove the last element in the cell ? I tried cell{end} = [] but it did not work. It only emptied the last cell. I would like the result to be a 1x11 cell
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

goerk el 27 de Jun. de 2016
use normal brackets
cell(end) = [];
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Guillaume el 27 de Jun. de 2016
The reason being:
• curly brackets act on the content of a cell(s). It does not affect the container (the cell array) itself, so c{end} refers to what's in the last cell, and therefore c{end} = [] puts an empty matrix in that last cell.
• round brackets act on the cell array itself. So c(end) refers to the last cell, and c(end) = [] deletes it.

Iniciar sesión para comentar.

### Más respuestas (3)

Ceethal Kottakali Piyus el 20 de En. de 2022
You have to use round parentheses instead of curly braces (which act on the inner cell values and not on the cells themselves):
cell(end) = [];
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Tong Zhao el 15 de Jun. de 2022
Editada: Tong Zhao el 15 de Jun. de 2022
Hi Ceethal,
What if I want to remove the second row of a 2x2 cell array?
cell_arr = {1,2;3,4}
cell_arr = 2×2 cell array
{[1]} {[2]} {[3]} {[4]}
cell_arr(2,:) = []
cell_arr = 1×2 cell array
{[1]} {[2]}
Edit: I just found the expression myself. But I'd like to keep this thread for anyone who's running into the same problem.

Iniciar sesión para comentar.

Amir Hosein Asaadi el 27 de Sept. de 2021
I sove it by creating variable again like this:
cell_var = {'var1','var2'};
cell_var = {'var1'};
I hope this work for you.
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Josep Llobet el 2 de Ag. de 2022
% Cell you want to copy
branques_pixels_new = {[55178] [55593] [62271] [62686] [66858] [67273 123123 12123]}
% element you want to eliminate
n_elm_borrar = 3;
% New cell with the non- element
branques_pixels_new_2 = {};
% Operation
for n_elm = 1:length(branques_pixels_new)
if n_elm ~= n_elm_borrar
branques_pixels_new_2{end+1} = branques_pixels_new{n_elm};
end
end
% New cell
branques_pixels_new_2
##### 2 comentariosMostrar NingunoOcultar Ninguno
Stephen23 el 2 de Ag. de 2022
The simple and efficient MATLAB approach:
branques_pixels_new_2 = branques_pixels_new;
branques_pixels_new_2(n_elm_borrar) = [];
Josep Llobet el 3 de Ag. de 2022
That's true, it's better that one

Iniciar sesión para comentar.

### Categorías

Más información sobre Logical en Help Center y File Exchange.

### Community Treasure Hunt

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

Start Hunting!

Translated by