make replacements in an array

2 visualizaciones (últimos 30 días)
Michael
Michael el 10 de Jun. de 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 comentario
Michael
Michael el 10 de Jun. de 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

Iniciar sesión para comentar.

Respuesta aceptada

Sean de Wolski
Sean de Wolski el 10 de Jun. de 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 comentario
Michael
Michael el 10 de Jun. de 2011
i was making this way to complicated, thanks

Iniciar sesión para comentar.

Más respuestas (2)

Jan
Jan el 10 de Jun. de 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 el 10 de Jun. de 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 comentarios
Michael
Michael el 10 de Jun. de 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 el 10 de Jun. de 2011
A = randi(3,1,10)
B = nominal(A,{'one','two','three'},1:3)
(if you have Stats TB)

Iniciar sesión para comentar.

Categorías

Más información sobre Elementary Math en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by