MATLAB: While Loop Line Plot?

linescatter plotwhile loop

I am running a while loop to take the average value of a selcted portion of a matrix. My loop selects a fixed amount of rows and sweeps through columns via the while loop. I want to plot these points as a line vs my upper bound(yU), but I can only seem to get a scatter plot. Does anyone know how to do this?
function [avg] = sweep(mat,xL,xU,yL,yU,ystep,ymax)
while yU < ymax
selmat = mat(xL:xU,yL:yU);
avg = mean(mean(selmat(~isnan(selmat))));
plot(yU,avg,'-x')
hold on
yL = yL + ystep;
yU = yU + ystep;
end
end

Best Answer

I have no idea what the arguments to your function would be, so I can’t run your code.
Note that this assumes that the calculated values for each element of ‘avg’ and ‘yU’ are scalars.
Try this:
kount = 0;
while yU < ymax
kount = kount + 1;
selmat = mat(xL:xU,yL:yU);
avg(kount) = mean(mean(selmat(~isnan(selmat))));
yL = yL + ystep;
yU = yU + ystep;
yUv(kount) = yU;
end
figure
plot(yUv,avg,'-x')
Make appropriate changes to get the result you want.