How can I have a function that has a string as the input.
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论
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 个评论
Stephen23
2018-4-1
Do NOT use == to check if character vectors are the same. Use strcmp or strcmpi.
回答(1 个)
David Fletcher
2018-3-31
编辑:David Fletcher
2018-3-31
0 个投票
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 个评论
Walter Roberson
2018-3-31
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
2018-4-1
Walter Roberson
2018-4-1
if strcmp(color, 'black')
The input to the function would be like displayColor('black')
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!