Borrar filtros
Borrar filtros

avoid for loop in a specific code

1 visualización (últimos 30 días)
MA
MA el 10 de Ag. de 2019
Comentada: MA el 10 de Ag. de 2019
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
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 Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by