Nested for loops using vectorization in MATLAB

I currently have two national instrument devices hooked up to MATLAB and have this nested for loop:
for i=1: 5
removeChannel(session, 7)
addAnalogInputChannel(session, 'cDAQ1Mod8', ['ai' num2str(i)], 'Voltage');
for j=1: 5
signal = [in(i,:) out(j,:)];
outputSingleScan(session, signal);
measurements(6-j,6-i) = session.inputSingleScan;
end
end
Basically what this does is removes the last channel in the session and adds a new one from the DAQ depending on the iteration. A signal is then sent from the NI USB device and then another measurement is read from the DAQ. How do I use vectorization for this nested for loop?

3 Comments

Not sure how to vectorize this (don't have the toolbox), but you could simplify the code like this if you want:
for i = 1:5
removeChannel(session, 7)
addAnalogInputChannel(session, 'cDAQ1Mod8', ['ai' num2str(i)], 'Voltage');
for j = 1:5
signal = [in(i,:) out(j,:)];
outputSingleScan(session, signal);
measurements(6-j,6-i) = session.inputSingleScan;
end
end
Also, are you trying to vectorize this because this is too slow? You would have to determine what the bottle neck is first. For instance, even if we could vectorize this, if removeChannel or outputSingleScan is slow, then vectorizing may not help much.
@DonaldLee outputSingleScan is a Matlab function. the first argument is the session and the second argument it takes is a row vector. The function takes the voltage measurement from the DAQ.
Yeah I need it vectorized because it is too slow. My goal here is to see whether or not it makes a difference for my code. Thanks for the help with the if statements.
Oh, I see. I don't have the Data Acquisition Toolbox, so hopefully one of the pros will stop by to lend a help. Also, feel free to edit the question with the simpler code to make it easy on their eyes :)

Sign in to comment.

Answers (0)

Categories

Find more on Instrument Control Toolbox in Help Center and File Exchange

Asked:

on 22 Sep 2017

Edited:

on 22 Sep 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!