I am trying to create a set of terms programmatically in order to build up a set of equations later in the code. The equations are supposed to be stored in Q. The vectors a and b are fixed parameters and vector T is the unknown variable.
n = 5;a = [6 5 4 3 2 1];b = [1 2 3 4 5 6];L = 3;k = 1;while k<=n Q{k,1} = @(T) a(k)*b(k)/L*(T(k+1)-T(k)); k = k+1;endQ
What happens when I run the code is that the information in k is passed in the index of Q (so that the terms are stored in different rows) but not in the index of a,b and T:
Q =5×1 cell array {@(T)a(k)*b(k)/L*(T(k+1)-T(k))} {@(T)a(k)*b(k)/L*(T(k+1)-T(k))} {@(T)a(k)*b(k)/L*(T(k+1)-T(k))} {@(T)a(k)*b(k)/L*(T(k+1)-T(k))} {@(T)a(k)*b(k)/L*(T(k+1)-T(k))}
For my purpose I'd like to get an output like this:
Q =5×1 cell array {@(T)a(1)*b(1)/L*(T(2)-T(1))} {@(T)a(2)*b(2)/L*(T(3)-T(2))} {@(T)a(3)*b(3)/L*(T(4)-T(3))} {@(T)a(4)*b(4)/L*(T(5)-T(4))} {@(T)a(5)*b(5)/L*(T(6)-T(5))}
Does anyone have an idea how to get this output?
Best Answer