MATLAB: The expression to the left of the equals sign is not a valid target for an assignment

errorif statementMATLABmatrices

I wondered if anyone could explain what is going wrong here? the error is present for every single line with "Ta" in it. Is there an alternative technique I could use instead of these if statements?
for Ta=1:39 for Tr=1:44
Hc=4;
if Ta=0
Pswv=0
elseif Ta=1
Pswv=6.5;
elseif Ta=2
Pswv=6.9;
elseif Ta=3
Pswv=7.7;
elseif Ta=4
Pswv=8.4;
elseif Ta=5
Pswv=9.0;
elseif Ta=5
Pswv=9.7;
elseif Ta=6
Pswv=10.3;
elseif Ta=7
Pswv=11.0;
elseif Ta=8
Pswv=11.6;
elseif Ta=9
Pswv=12.3;
elseif Ta=10
Pswv=13.1;
elseif Ta=11
Pswv=14.0;
elseif Ta=12
Pswv=14.8;
elseif Ta=13
Pswv=15.8;
elseif Ta=14
Pswv=16.8;
elseif Ta=15
Pswv=17.7;
elseif Ta=16
Pswv=19.4;
elseif Ta=17
Pswv=21.0;
elseif Ta=18
Pswv=23.0;
elseif Ta=19
Pswv=24.0;
elseif Ta=20
Pswv=25.0;
elseif Ta=21
Pswv=26.5;
elseif Ta=22
Pswv=28.1;
elseif Ta=23
Pswv=29.6;
elseif Ta=24
Pswv=31.4;
elseif Ta=25
Pswv=33.3;
elseif Ta=26
Pswv=35.0;
elseif Ta=27
Pswv=38.0;
elseif Ta=28
Pswv=41.0;
elseif Ta=29
Pswv=43.7;
elseif Ta=30
Pswv=45.9;
elseif Ta=31
Pswv=48.1;
elseif Ta=32
Pswv=50.8;
elseif Ta=33
Pswv=53.5;
elseif Ta=34
Pswv=56.2;
elseif Ta=35
Pswv=59.9;
elseif Ta=36
Pswv=63.6;
elseif Ta=37
Pswv=65.6;
elseif Ta=38
Pswv=69.3;
elseif Ta=39
Pswv=74.5;
elseif Ta=40
Pswv=76.2;
end

Best Answer

You mean:
if Ta == 0
The "==" is the comparison, while "=" is an assignment.
Hints: After for Ta=1:39 the case "if Ta==0" is not possible. But a nicer version of the code might be:
PswvPool = [6.5, 6.9, 7.7, 8.4, ...] etc
for Ta = 1:39
Pswv = PswvPool(Ta);
Related Question