# How to delete cell entries with an index vector

7 visualizzazioni (ultimi 30 giorni)
Melanie il 10 Gen 2014
Commentato: Simon il 13 Gen 2014
Dear community,
I have a cell
A=cell(m,n)
and a logical vector
b=(m,1)
containing logical ones and zeros (true, false). What I like to do now is to delete the cell entries, if there is a logical one
A(b,:)=[];
But the error is: Index of element to remove exceeds matrix dimensions. What have I done wrong?
Thanks a lot!
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposte (3)

Azzi Abdelmalek il 10 Gen 2014
n=3;
m=6;
A=num2cell(rand(m,n))
idx=[1 0 0 1 1 0]
A(logical(idx),:)=[]
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Simon il 10 Gen 2014
Hi!
Are you sure that b is not longer than size(1) of A? Is b really a logical vector with true or false? I have no problem if I use
n=3
m=5
A=cell(m,n)
b=false(m,1)
b(2) = true
b(5) = true
A(b,:)=[]
An error is thrown for
A=cell(m,n)
b(6) = true
A(b,:)=[]
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Melanie il 13 Gen 2014
Thanks for your answers, I still have the error code:
Index of element to remove exceeds
matrix dimensions.
I checked the sizes now for 100 times :D I don't know what could help me, m is always the same.
BR, MS
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Simon il 13 Gen 2014
I'm wondering where your error message comes from. If I use my example above the message is
Matrix index is out of range for deletion.
Tested on Matlab R2010b. Maybe we use different versions or the problem is different ...

Accedi per commentare.

### Categorie

Scopri di più su Matrix Indexing in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by