MATLAB giving 0 value for if/then statement

  • MATLAB
  • Thread starter bakin
  • Start date
  • #1
58
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:

Answers and Replies

  • #2
35,060
6,794
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.
 
  • #3
58
0
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:
 

Related Threads on MATLAB giving 0 value for if/then statement

  • Last Post
Replies
1
Views
3K
Replies
3
Views
1K
Replies
1
Views
2K
Replies
1
Views
4K
Replies
2
Views
6K
Replies
6
Views
7K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
4
Views
3K
Replies
1
Views
5K
Top