How can I have a function that has a string as the input.
Información
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
Mostrar comentarios más antiguos
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
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
el 31 de Mzo. de 2018
Editada: David Fletcher
el 31 de Mzo. de 2018
0 votos
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
Walter Roberson
el 31 de Mzo. de 2018
Note that you would not get this error if you really did have a string as an input. But you do not: instead you have a character vector as input. You need strcmp() or strcmpi() to compare character vectors.
spete
el 1 de Abr. de 2018
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!