I think the problem you are having is that the output from the AI Read.VI is actually a 1-D array of waveforms. If you were scanning multiple channels at one time, each channel would have its own waveform. So scanning two channels would result in a 1-D array of waveforms with 2 elements in it. However, even if you only scan one channel, the VI will still out put an array. So to get a single waveform, you can index the array. Incidentally, if you change the output to a scaled array, you'll notice that the output is a 2-D array of SGL, so you would still have to index it to get a 1-D array. It really does not matter whether or not you use a scaled array or waveform types unless you want to keep the time data included in the waveform. When you wire a wavefor
m type to the Mean.VI it will coerse it into a 1-D array. The reason you were getting strange results out of the Mean.VI before is that LabVIEW will allow you to wire a 1-D array of waveforms to a 1-D numeric array, but it does not coerse it the way you would expect. LabVIEW will coerse it by taking the last value in each waveform of the array and make it an element in the numeric array. So if you wired an array of waveforms that only had one element and coersed it into a 1-D numeric array at the Mean.VI, your average would end up being the last value in your waveform. Hope that all makes sense, I know its a little confusing. Just index the array after the AI Read and I'm sure things will work for you.
If you just want to monitor the mean value versus time, you might have an easier time using a waveform chart. A chart will keep a history of values so that you can wire one value to it at a time inside of a loop.