Adding names to each row automatically

1 visualización (últimos 30 días)
DARLINGTON ETAJE
DARLINGTON ETAJE el 28 de Ag. de 2019
Comentada: DARLINGTON ETAJE el 28 de Ag. de 2019
Imagine this
A=[2;4;3;1;3;4;1;3];
B=[-1;3;-4;-2;8;-9;1;-5];
E=zeros(8,1);
% such that
for i=1:8
if B(i)<0
E(i)='Bad';
elseif B(i)>0
E(i)='Good';
end
end
D=[A B E];
How do I find D...I want to label each row in D bad or good based te value in B...negative are for Bad while positive are for Good

Respuesta aceptada

Adam Danz
Adam Danz el 28 de Ag. de 2019
Editada: Adam Danz el 28 de Ag. de 2019
If you want to form a matrix at the end, you'll need to keep the variables as numeric where "good" equals 1 and "bad" equals 0. That offers other benefits during analysis, too.
E = B > 0;
D=[A B E];
If you'd rather use strings,
E = cell(size(B));
E(B>0) = {'Good'};
E(B<0) = {'Bad'};
Then put it in a table
T = table(A,B,E);
  2 comentarios
Adam Danz
Adam Danz el 28 de Ag. de 2019
Editada: Adam Danz el 28 de Ag. de 2019
Note that if any elements of B equal 0, they will not be categorized as good or bad. To get around that, you could use <=0 or >=0 depending on how values of 0 would be interpretted.
DARLINGTON ETAJE
DARLINGTON ETAJE el 28 de Ag. de 2019
Don't worry...getting 0 is not allowed in this program

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by