making a function that uses a string input

89 次查看(过去 30 天)
I am trying to make a function:
function [y]=my_function(A,B,C)
where A is a string and B and C are just numbers. If someone enters 'yes' for A then a number for B and C I want it to do one calculation. If someone enters 'no' for A then numbers for B and C I want it to do another calculation. I was trying to use if statements i.e.
if A='yes'
calculations
end
if A='no'
calculations
end
but I can't get the function to accept strings and then use them with the if statements. Is there a way to do this or am I way off? Thanks. Let me know if I wasn't clear with something.

采纳的回答

Walter Roberson
Walter Roberson 2011-10-20
if A='yes'
attempts to assign 'yes' to A in the middle of the 'if' statement. This is... not good.
if A=='yes'
would attempt to compare A to 'yes'. Which will work if A happens to be a row vector with exactly three elements (the same size as 'yes'), but will fail with a dimension mismatch if A happens to be a different size, such as if A is a row vector with two elements containing 'no' . Using '==' to compare strings is thus not recommended.
For your situation, I would suggest you use strcmpi()

更多回答(1 个)

Jun
Jun 2011-10-20
You can try strcmp or strcmpi
for example, if strcmp(A,'yes')...

类别

Help CenterFile Exchange 中查找有关 String 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by