MATLAB giving 0 value for if/then statement

  • Context: MATLAB 
  • Thread starter Thread starter bakin
  • Start date Start date
  • Tags Tags
    Matlab Value
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 4K views
bakin
Messages
55
Reaction score
0
Hi again! Working with an if/then statement and running into trouble. Here's my code.

Code:
a=2;
N = input('Enter the number of applied loads:');
for i=1:N
    L(i)=input('Enter the force of the applied load in kN:');
    D(i)=input('Enter the position of the applied load in meters:');
end
if D(i) > a
    Z(i)=L(i)*-1
else Z(i)=L(i)
end
And here is the result:
Code:
Enter the number of applied loads:2
Enter the force of the applied load in kN:1
Enter the position of the applied load in meters:1
Enter the force of the applied load in kN:3
Enter the position of the applied load in meters:3

Z =

     0    -3

>> D

D =

     1     3

>> L

L =

     1     3

Why is Z(1) coming out zero? With my if/then statement, what I want is if D>a, then L= -1*L. If not, it should just stay the same, not return a zero.

Any ideas? :confused:edit: Interesting...
Code:
>> projectdebug
Enter the number of applied loads:10
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5
Enter the force of the applied load in kN:5
Enter the position of the applied load in meters:5

Z =

     0     0     0     0     0     0     0     0     0    -5

What's going on?! :cry:
 
Last edited:
Physics news on Phys.org
I think you want to embed this code in a for loop as well:
Code:
if D(i) > a
    Z(i)=L(i)*-1
else Z(i)=L(i)
end

After your first loop exits, what's the value in i? I don't know, and your problem is probably related to i not being defined outside your loop. Alternatively, i could be the first value that caused it to exit the first for loop, which is probably not what you intended.
 
That's it! :smile: After the loop, it put i=2, which probably caused problems. I just threw the same if/then statement in another for loop, with "for i=1:N", and it works. Thanks a bunch, Mark! :wink: