필터 지우기
필터 지우기

If statements comparing two character strings with multiple inputs

조회 수: 7 (최근 30일)
I have to use two strings that include different characters such as str1= ["rho" , "mu" , "nu"] and str2= ["SI", "BG"] and go from there. I need to use IF statements to get the correct values if i called the function from the command line: h20_props(50,"nu","SI) but when I do this, nothing happens. I don't even get an error. it's just nothing. Here's what I have:
function h20_props(T, str1, str2)
str1 = ["rho","mu","nu","pv"];
str2 = ["SI", "BG"];
if strcmpi(str1,"mu")
if strcmpi(str2, "SI")
dv = h20_mu_SI(T);
fprintf('dv_si = %g\n',dv);
else
dv = h20_mu_BG(T);
fprintf('dv_bg = %g\n',dv);
end
elseif strcmpi(str1,"nu")
if strcmpi(str2,"SI")
kv = h20_nu_SI(T);
fprintf('kv_si=%g\n',kv);
else
kv = h20_nu_BG(T);
fprintf('kv_bg=%g\n',kv);
end
elseif strcmpi(str1, "pv")
if strcmpi(str2, "SI")
vp = h20_pv_SI(T);
fprintf('vp_si=%g\n',vp);
else
vp = h20_pv_BG(T);
fprintf('vp_bg=%g\n',pv);
end
end
end
  댓글 수: 1
per isakson
per isakson 2021년 2월 16일
You overwrite the input arguments with the statements
str1 = ["rho","mu","nu","pv"];
str2 = ["SI", "BG"];
Comment out these two statements.

댓글을 달려면 로그인하십시오.

채택된 답변

Fangjun Jiang
Fangjun Jiang 2021년 2월 16일
variable 'str1' and 'str2' are supposed to take values from function input arguments when you call h20_props(50,"nu","SI"). But inside your fuction, the values were over-written in the first two lines of code. What are you trying to do?
I believe it should work if you comment out those two lines.
  댓글 수: 1
Mikela Petersen
Mikela Petersen 2021년 2월 16일
this was exactly what i was doing wrong. I commented the two string lines out and now everything works! Thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by