Search and replace values in cell array?

13 vues (au cours des 30 derniers jours)
Alana Weir
Alana Weir le 16 Août 2016
Commenté : Alana Weir le 16 Août 2016
I have a cell array that is populated with 0's and letters. I and trying to write a script that will convert the different letters into different numerical values. The array is set up as below;
0 0 0 0 M
0 0 0 0 0
0 S 0 0 0
0 0 L 0 0
And i am trying to convert it to;
0 0 0 0 2
0 0 0 0 0
0 1 0 0 0
0 0 3 0 0
I can't search each column/row and replace manually as I will have an unknown amount of each. I tried using cellfun for this but as the isn't scalar I wasn't sure how. Any suggestions?

Réponse acceptée

hcai
hcai le 16 Août 2016
I believe cellfun should still work. Try setting 'UniformOutput' to false.
  3 commentaires
hcai
hcai le 16 Août 2016
Convert it to a matrix first in order to index into your cell array:
A(cell2mat(cellfun(@(elem) elem == 'M', A(:, :), 'UniformOutput', false))) = {2};
Here is what I see:
Alana Weir
Alana Weir le 16 Août 2016
It worked, thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by