avoid for loop in a specific code

Could anyone help me if there is any way to avoid for loop in the following code: Both Target and predicted_target are vectors with n rows and one column.
new_classes=cell(size(Target,1),1);
for i=1:size(Target,1)
if (strcmp(predicted_target(i),Target{i}))
new_classes{i}=strcat('c',Target{i});
else
new_classes{i}=strcat('E',Target{i});
end
end

3 comentarios

the cyclist
the cyclist el 10 de Ag. de 2019
Can you upload your data (or a representative sample) in a MAT file?
MA
MA el 10 de Ag. de 2019
imagine that my data is as simple as that:
predicted_t=[ '1'; '0'; '0'; '1'];
Target=[ '0'; '1'; '1'; '1'];
So, I am expecting the new classes to be:
{'E0'}
{'E1'}
{'E1'}
{'c1'}
Bruno Luong
Bruno Luong el 10 de Ag. de 2019
Editada: Bruno Luong el 10 de Ag. de 2019
@MA: You change cell array to char array, you change variable name predicted_target to predicted_t.
Please don't do that if you want getting exactly the code that works

Iniciar sesión para comentar.

 Respuesta aceptada

Bruno Luong
Bruno Luong el 10 de Ag. de 2019
Editada: Bruno Luong el 10 de Ag. de 2019
predicted_target = {'1'; '0'; '0'; '1'};
Target = {'0'; '1'; '1'; '1'};
prefix = {'E'; 'c'}
new_classes = strcat(prefix(strcmp(predicted_target,Target)+1),Target)

1 comentario

MA
MA el 10 de Ag. de 2019
Thank you. I just change the prefix, so the altered code is the following:
prefix=int2str(predicted_target==Target);
prefix(prefix=='1')='c';
prefix(prefix=='0')='E';
new_classes = strcat(prefix,Target);
new_classes=cellstr(new_classes);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

MA
el 10 de Ag. de 2019

Comentada:

MA
el 10 de Ag. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by