how to compare string?

조회 수: 6 (최근 30일)
SRIGUHAN MURUGASUNDARAM
SRIGUHAN MURUGASUNDARAM 2018년 1월 18일
댓글: Steven Lord 2018년 2월 28일
i want to take input fuel=CH4 or CO or Co2, %its num + string input if fuel==CH4 % if fuel is CH4 i need to fix some value for variable %if fuel is Co or Co2 i need to fix some value can you please help me how to do it?

채택된 답변

Birdman
Birdman 2018년 1월 18일
편집: Birdman 2018년 1월 18일
Try this:
fuel=input('select the gaseous component CH4,ethane,propane,butane,H2,CO,CO2,N2\n');
if prod(ismember(fuel,'CH4'))
density=0.716; %kg/m^
LCV=35.83; %MJ/m^3
cc=1; hh=4; oo=0; nn=0;
TMmass=cc+hh+oo+hh;
disp('total mass of CH4');
disp(TMmass);
end
if prod(ismember(fuel,'ethane'))
density=1.342; %kg/m^3
disp(density);
LCV=63.76; %MJ/m^3
disp(LCV);
cc=2;
disp(cc);
hh=6;
disp(hh);
oo=0;
disp(oo);
nn=0;
disp(nn);
TMmass=cc+hh+oo+hh;
disp('total mass of CH4');
disp(TMmass);
end
Do not forget to enter your input in char form. Like
>>'CH4'
or
>>'ethane'
  댓글 수: 5
Stephen23
Stephen23 2018년 1월 18일
편집: Stephen23 2018년 1월 18일
This is a buggy way to compare strings. It will work incorrectly even if the order of the characters is different, or if any characters are repeated. Avoid using this code.
Strings should be compared simply using strcmp and strcmpi. See the other answers for simpler and much more robust code.
Birdman
Birdman 2018년 1월 18일
Yes, thank you for attention.

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

추가 답변 (2개)

Steven Lord
Steven Lord 2018년 1월 18일
The approach Birdman suggested won't work if the user enters more characters than you expected.
fuel = 'CH4CC4'
prod(ismember(fuel, 'CH4')) % returns 1
It also won't work if the user enters lower-case characters when you expected upper-case.
prod(ismember('ch4', 'CH4')) % returns 0
Use isequal, strcmp, strcmpi, or a switch / case statement. To handle case matching, you might also want to use upper or lower to convert the input into a consistent case.
isequal(fuel, 'CH4') % false
strcmp(fuel, 'CH4') % false
switch fuel
case 'CH4'
result = true
otherwise
result = false
end
  댓글 수: 3
SRIGUHAN MURUGASUNDARAM
SRIGUHAN MURUGASUNDARAM 2018년 2월 27일
Hi Mr.Steven Lord, your help was really usefull. i have some doubts in my mathwork. can you please help me ? if you dont mind... may i know how to contact you? email or any chat..
Steven Lord
Steven Lord 2018년 2월 28일
Please use the Ask button at the top of the page to ask a new question. That way I can read it and so can others who may respond before I can.

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


Guillaume
Guillaume 2018년 1월 18일
string comparisons are done with strcmp, or strcmpi for case insensitive. Never with ==

카테고리

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