Delete the Whole Row and Merge The Next Row in a matrix
Afficher commentaires plus anciens
I have a Matrix A =
'30' 'X' '@NA'
'15' 'Y' [231.001]
'00' 'Y' [21.110]
'20' 'W' '@NA'
'55' 'X' [9.001]
'10' 'X' [11.211]
>>whos A
Name Size Bytes Class Attributes
aaa 6x3 226 cell
How can I get a new matrix B that delete the whole row of Matrix A if there is anything other than '10','15','20'...'55' in Column 1, or any '@NA' in Column 3 , and MERGE the next qualified row.
Take A for example, Row 1 and 4 should be deleted because there is '@NA' in Column 3. Row 3 should also be deleted because there is '00' in Column 1.
Matrix B should like,
>>B
B =
'15' 'Y' [231.001]
'55' 'X' [9.001]
'10' 'X' [11.211]
B is a 3*3 cell matrix. Any suggestion is welcome!
Réponse acceptée
Plus de réponses (1)
Azzi Abdelmalek
le 8 Août 2012
Modifié(e) : Azzi Abdelmalek
le 8 Août 2012
a1=A(:,1);B=A
a1=str2num(cell2mat(A(:,1)))
[i1,j1]=find(mod(a1,5)~=0 | a1<10)
B(i1,:)=[]
ind=cellfun(@(x) isnumeric(x),B(:,3))
result=B(ind,:)
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!