Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

How can I have a function that has a string as the input.

1 visualización (últimos 30 días)
spete
spete el 31 de Mzo. de 2018
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
I am trying to make a function that requires you to input the name of a color to get the output. My code, for example, is:
function [] = displayColor(color)
if color == 'black'
disp('black line');
plot(x.^2);
elseif color == 'blue'
disp('blue line');
plot(x.^3);
end
When I do this, I get the error:
Error using ==
Matrix dimensions must agree.
Error in displayColor (line 4)
if color == 'black'
How do I fix this so I can input a string as the function variable??
  1 comentario
Stephen23
Stephen23 el 1 de Abr. de 2018
Do NOT use == to check if character vectors are the same. Use strcmp or strcmpi.

Respuestas (1)

David Fletcher
David Fletcher el 31 de Mzo. de 2018
Editada: David Fletcher el 31 de Mzo. de 2018
You need to use strcmp(string1,string2) to compare as the size of the color variable might be a different length to whatever fixed length string you are trying to equate it with (which is why you are getting the error).
  3 comentarios
spete
spete el 1 de Abr. de 2018
Hi I am still confused. So if I put in displayColor(black), I then add strcmp(black) before the code of the function?
Walter Roberson
Walter Roberson el 1 de Abr. de 2018
if strcmp(color, 'black')
The input to the function would be like displayColor('black')

La pregunta está cerrada.

Community Treasure Hunt

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

Start Hunting!

Translated by