Save FOR loop data into a vector

Dear all,
I am trying to save the data that I get from a FOR loop into a vector. Here is my example:
X = [ -5 1 -2 9 100 -3 ]
for i = X(1:1:end)
if find(0<i & i<10) == 1
Y = i
else Y = NaN
end
end
The above code returns the values after each iteration, separately. I would like them placed into a vector. Could anyone give me a hint on that?

 Accepted Answer

You need your for loop to index into X, rather than use X as the index.
for j = 1:numel(X)
i = X(j);
your code as normal...
output(j) = Y;
end

1 Comment

Thank you very much, Iain. It works just fine now.

Sign in to comment.

More Answers (1)

Note that you can loop over elements
X = [1 3 5 2 3 4 1]
Y = zeros(size(X)) ; % pre-allocation makes loops faster
k = 0 ;
for xval = X
k = k + 1 ;
disp(xval)
if xval > 2
Y(k) = 1 ;
end
end
But … matlab can handle vectors/arrays at once, making this much easier!
Y = double(X>2) % X>2 would return a logical array.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Asked:

on 13 Feb 2014

Commented:

on 13 Feb 2014

Community Treasure Hunt

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

Start Hunting!