How to replace the contents of a cell array

2 visualizzazioni (ultimi 30 giorni)
I have a cell array of 2 columns as follows
Column1 Column2
AA BB0p0
AA BB0p5
AA BB1p0
AA BB1p5
...and so on
I would like to replace the contents of the 2nd column as follows
BB0p0 = 0
BB0p5 = 1
BB1p0 = 2
BB1p5 = 3 and so on...
I am a matlab newbie, so my apologies if any part of the question is not clear.
Thanks
  1 Commento
Dubstep Dublin
Dubstep Dublin il 26 Gen 2016
I think it all boils down to using strrep on a cell array. Can someone please tell me how to do that?

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 26 Gen 2016
[unique_col2, ~, col2_idx] = unique(YourCell(:,2));
col2_idx_cell = num2cell(col2_idx - 1); %the index is 1 based rather than 0 based
YourCell(:,2) = col2_idx_cell;
And the map back of any one stored value is unique_col2{stored_value+1}
Typically you would skip the -1 and +1 in the above and use references starting from 1, but using references starting from 0 is not wrong, and has its uses.
  5 Commenti
Dubstep Dublin
Dubstep Dublin il 27 Gen 2016
Yes it works! Thanks a lot Walter.
I have a followup question: What do I do if I have to replace the contents of the cell as follows.
BB0p0 = 0 BB0p5 = 0.5 BB1p0 = 1.0 BB1p5 = 1.5 and so on...
Triveni
Triveni il 28 Gen 2016
At-least you should accept answers when someone help....accept walter's answer

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Multidimensional 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