MATLAB: Problem Using Interp1 Within For Loop

for loopinterp1Symbolic Math Toolbox

I have the following code:
xq = dataset(1:116,1);
Fevq = zeros(length(xq),length(Fes));
for l=1:numel(Fes);
Fevq(l)=interp1(Fo(:,l),DeltaFe56(:,l),xq);
end
Fes is a 2×1 matrix, and both Fo and DeltaFe56 are both 126×2 matrices. I would like to interpolate the values of xq onto the (Fo,DeltaFe56) curves both when l=1, and when l=2. When I try to do this, however, I get the error message, "Unable to perform assignment because the left and right sides have a different number of elements".
I would like both sides to have the size of 116×2, and I am not sure why this isn't the case. Can anybody explain why this isn't working?
Thanks,
Jonathan

Best Answer

  • Try this
    xq = dataset(1:116,1);
    Fevq = zeros(length(xq),length(Fes));
    for l=1:numel(Fes);
    Fevq(:,l)=interp1(Fo(:,l),DeltaFe56(:,l),xq); % use Fevq(:,l) to indicate that you want to assign value to a column
    end