delete rows from cell array

1 visualizzazione (ultimi 30 giorni)
Elysi Cochin
Elysi Cochin il 23 Feb 2017
Modificato: Guillaume il 23 Feb 2017
i have a cell array with string as below (format is "number""space""-""space""number")
1234 - 5678
543 - 2345
5678 - 1234
delete the numbers relations such as
1234 - 5678
5678 - 1234
and keep first one of them and get output as
1234 - 5678
543 - 2345
i need to search using '-'
i get empty matrix, when i do as below
index = find(ismember(cellArr(1), ' - '))
  2 Commenti
Rik
Rik il 23 Feb 2017
So your question is how to remove the rows with pairs that are descending?
index is empty, because you are comparing a single cell with the text ' - '. I think you should take a look at strfind.
Adam
Adam il 23 Feb 2017
You say you want to delete numbers, but then give an example output which still contains the same first line as I thought you wanted to delete?

Accedi per commentare.

Risposta accettata

Guillaume
Guillaume il 23 Feb 2017
Modificato: Guillaume il 23 Feb 2017
I'm assuming that you want to delete repeated pairs regardless of the order the numbers appear in the pair.
Possibly the easiest way would be:
c = {'1234 - 5678';
'543 - 2345';
'5678 - 1234';}
[~, urows] = unique(regexprep(c, '([^- ]*) - ([^-]*)', '${strjoin(sort({$1, $2}), '' - '')}'), 'stable');
filteredc = c(urows)

Più risposte (1)

Pooja Patel
Pooja Patel il 23 Feb 2017
A(1:2)={rand(10,6)}
A =
[10x6 double] [10x6 double]
>> row=2; A{1}(2,:)=[] %delete 1 row from 1 cell
A =
[9x6 double] [10x6 double]

Categorie

Scopri di più su Matrices and Arrays 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