## Multiple output values on an if else loop

### ANTONIOS LIONIS (view profile)

on 10 Nov 2019 at 11:10
Latest activity Commented on by Stephan

### Stephan (view profile)

on 10 Nov 2019 at 19:13
I need to run the following code 10 times (as the number of Hact array) and for each Ht value take a WeightF value. Then plot these 10 values of WeightF. The problem is that it returns ten times the same value. Can anyone help??
%insert exeprimental data in xlsx file
data(1:9,:)
Hsunrise = 6.5;
Hsunset = 17.7;
for i=1:9
Ht = (12/(Hsunset - Hsunrise)).*(Hact-Hsunrise);
if Ht < -4
WeightF = 0.11;
elseif -4 < Ht < -3
WeightF = 0.11;
elseif -3 < Ht < -2
WeightF = 0.07;
elseif -2 < Ht < -1
WeightF = 0.08;
elseif -1 < Ht < 0
WeightF = 0.06;
elseif 0 < Ht < 1
WeightF = 0.05;
elseif 1 < Ht < 2
WeightF = 0.1;
elseif 2 < Ht < 3
WeightF = 0.51;
elseif 3 < Ht < 4
WeightF = 0.75;
elseif 4 < Ht < 5
WeightF = 0.95;
elseif 5 < Ht < 6
WeightF = 1;
elseif 6 < Ht < 7
WeightF = 0.9;
elseif 7 < Ht < 8
WeightF = 0.8;
elseif 8 < Ht < 9
WeightF = 0.59;
elseif 9 < Ht < 10
WeightF = 0.32;
elseif 10 < Ht < 11
WeightF = 0.22;
elseif 11 < Ht < 12
WeightF = 0.1;
elseif 12 < Ht < 13
WeightF = 0.08;
else
WeightF = 0.13;
end
disp(WeightF)
end

### Stephan (view profile)

on 10 Nov 2019 at 11:43

in every run of your loop you overwrite WeightF. Use indexing to avoid this:
WeightF(i) = ...
also using i for loop count is not recommended, because of the imaginary number operator i in Matlab - use ii instead.

Stephan

### Stephan (view profile)

on 10 Nov 2019 at 18:38
what do you expect? You do the same calculation with the same values 9 times. It is obviously that you get the same result 9 times...
There is no connection from your data to the loop. I suspect that this is problem no. 2
ANTONIOS LIONIS

### ANTONIOS LIONIS (view profile)

on 10 Nov 2019 at 18:50
I expect for each value of Ht, to take a value for WeightF accordingly.
Stephan

### Stephan (view profile)

on 10 Nov 2019 at 19:13
Make sure to change the values of Hc inside the loop for every run accordingly to your data.