Effacer les filtres
Effacer les filtres

make replacements in an array

1 vue (au cours des 30 derniers jours)
Michael
Michael le 10 Juin 2011
i have an array of doubles, A.
A = [0; 0; 1; 1; 0; 1];
I wish to replace all the 1's with 'yes' and the 0's with 'no'. can this be done in order to produce an output B?
B = [no; no; yes; yes; no; yes];
  1 commentaire
Michael
Michael le 10 Juin 2011
ok, in understand the whole character thing, but just say i want to add a 3rd option to the mix..
A = [1; 2; 3]
how do i get:
B = ['one '; 'two '; 'three']
?
thanks again everyone

Connectez-vous pour commenter.

Réponse acceptée

Sean de Wolski
Sean de Wolski le 10 Juin 2011
B must be a cell array.
A = [0; 0; 1; 1; 0; 1];
B = repmat({'no'},size(A));
B(logical(A)) = {'yes'}
Part 2
Numbs = {'one';'two';'three'}; %etc
A = [1;2;3];
B = Numbs(A)
  1 commentaire
Michael
Michael le 10 Juin 2011
i was making this way to complicated, thanks

Connectez-vous pour commenter.

Plus de réponses (2)

Jan
Jan le 10 Juin 2011
A = [0; 0; 1; 1; 0; 1];
C = {'no', 'yes'}
B = reshape(C(A + 1), [], 1);
But as Matt T. said: Now B is a CELL string, which is not exactly "[no; no; yes; yes; no; yes]", because this is not possible in Matlab.

Matt Tearle
Matt Tearle le 10 Juin 2011
You can't have a matrix of strings 'yes' and 'no', like you've shown. You can have logicals (true/false), but they will display like 1/0. You can make a cell array of strings. You can make a character array of strings by padding the 'no's with a space ('no '). Or, if you have Statistics Toolbox, you can make a nominal array.
What is your purpose in all of this?
  2 commentaires
Michael
Michael le 10 Juin 2011
basically for work i have to produce reports and there are different types of data that i look at and wanted to tag each type of data with strings. right now i just have numbers to tag them instead of character labels. this was just a simple example. there are actually 3 types of data that i tagged as 1, 2, and 3.
Matt Tearle
Matt Tearle le 10 Juin 2011
A = randi(3,1,10)
B = nominal(A,{'one','two','three'},1:3)
(if you have Stats TB)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by