MATLAB Answers

0

If loop not executed in a function

Asked by Shuo Zhang on 12 Jul 2019
Latest activity Commented on by KSSV
on 12 Jul 2019
Accepted Answer by KSSV
Hi everyone,
I'm trying to build a simple function that gives values to parameters based on input. Attached are my programs
In the main program, if I input ship_type='Passenger ship', then everything worked fine
But when I change it to ship_type='cargo ship' or 'container ship', I get the error message 'Matrix dimensions must agree'
So I'm confused.
What's wrong with my program?
Btw, I'm using version 2017a

  0 Comments

Sign in to comment.

Tags

1 Answer

KSSV
Answer by KSSV
on 12 Jul 2019
Edited by KSSV
on 12 Jul 2019
 Accepted Answer

Use strcmp instead of equating.
function[A0,A1,A2,A3,A4,A5]=Trial_types(ship_type,x)
if strcmp(ship_type,'Passenger ship')
A0=0;
A1=1+x;
A2=2*x;
A3=3/x;
A4=4-x;
A5=x^2;
elseif strcmp(ship_type,'cargo ship')
A0=10;
A1=10+x;
A2=20*x;
A3=30/x;
A4=40-x;
A5=(x-10)^2;
elseif strcmp(ship_type,'container ship')
A0=20;
A1=20+x;
A2=30*x;
A3=40/x;
A4=50-x;
A5=(x-20)^2;
else
end
end

  2 Comments

Thank you very much for your help! It worked perfect!
KSSV
on 12 Jul 2019
You can also use switch. Read about it.

Sign in to comment.