Sorry for the weird formatting in the code. I'm not sure why it did that.
close all; clear all; clc;
s1 = daq.createSession('ni');
s2 = daq.createSession('ni');
s1.addAnalogInputChannel('Dev1',0,'Voltage');
s1.addAnalogInputChannel('Dev1',1,'Voltage');
s1.addAnalogInputChannel('Dev1',2,'Voltage');
s2.addAnalogOutputChannel('Dev1',0,'Voltage');
s1.Rate = 1000;
s2.Rate = 1000;
s1.DurationInSeconds = 2;
s2.IsContinuous = true;
outputValue = zeros(500,1);
for i = 0:0.25:5
disp(['Output ',num2str(i),'V to MFCs.']);
outputValue(:) = i;
lh = s2.addlistener('DataAvailable', ...
@(src,event) src.queueOutputData(outputValue));
s2.queueOutputData(outputValue);
s2.startBackground();
disp(['Acquiring data at ',num2str(i),'V setting for 2 seconds.']);
[capturedData,time] = s1.startForeground();
disp('Finished acquiring');
laserAvg = mean(capturedData(:,1))
sensorAvg = mean(capturedData(:,2))
outputAvg = mean(capturedDate(:,3))
s2.stop();
s1.stop();
delete(lh);
end