Replacing One Character Issue

picture = '% % %'
picture = strrep(picture,picture(1),'$')
I want to replace the 1st character with a $, but it replaces all the characters with a $. I think this is because all the characters are identical. How can I fix this without changing much of the program ?

Respuestas (1)

Voss
Voss el 3 de Mzo. de 2023
Editada: Voss el 3 de Mzo. de 2023
"I want to replace the 1st character with a $"
picture = '% % %';
disp(picture)
% % %
picture(1) = '$';
disp(picture)
$ % %
Note that that replaces the first character of picture with "$" regardless of what that character was (i.e., it does not replace the first character that's "%").
picture = 'c% % %';
disp(picture)
c% % %
picture(1) = '$';
disp(picture)
$% % %

5 comentarios

If you actually want to replace the first character that's "%" with "$", then:
picture = '% % %';
disp(picture)
% % %
idx = find(picture == '%', 1);
if ~isempty(idx)
picture(idx) = '$';
end
disp(picture)
$ % %
picture = 'c% % %';
disp(picture)
c% % %
idx = find(picture == '%', 1);
if ~isempty(idx)
picture(idx) = '$';
end
disp(picture)
c$ % %
Kimi Raikonnen
Kimi Raikonnen el 3 de Mzo. de 2023
Thanks for your help. I don't understand the difference between the 2. Is it that the 1st is more efficient since it replaces whatever the 1st character is with a $ ?
Kimi Raikonnen
Kimi Raikonnen el 3 de Mzo. de 2023
Also, does disp(picture) convert picture from a string into an array ? If so, can I do this keeping it as a string ?
Kimi Raikonnen
Kimi Raikonnen el 3 de Mzo. de 2023
Actually, disp is just an alternative to fprint isn't it ?
Voss
Voss el 3 de Mzo. de 2023
The difference is that one replaces the first character and one replaces the first '%'.
disp does no conversion.
disp displays to the command line, yes.

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 3 de Mzo. de 2023

Comentada:

el 3 de Mzo. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by