Save FOR loop data into a vector
66 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
採用された回答
Iain
2014 年 2 月 13 日
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 件)
Jos (10584)
2014 年 2 月 13 日
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.
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!