creating loop with two variables
1 回表示 (過去 30 日間)
古いコメントを表示
For example;
a=0:2:10;
b=0:2:6;
% number of elements of a is always bigger than b
I need to create for loop as below;
result(1)=a(1)-b(1);
result(2)=a(2)-b(2);
result(3)=a(3)-b(3);
result(4)=a(4)-b(4);
result(5)=a(5)-b(4);
result(6)=a(6)-b(4);
Since a and b variables' number isn't constant for each problem. How can I create this loop for working properly with arbitrary numbers of a and b?
0 件のコメント
採用された回答
Birdman
2017 年 12 月 7 日
編集済み: Birdman
2017 年 12 月 7 日
for i=1:max(numel(a),numel(b))
if(i>=min(numel(a),numel(b)))
result(i)=a(i)-b(min(numel(a),numel(b)));
else
result(i)=a(i)-b(i);
end
end
3 件のコメント
Birdman
2017 年 12 月 7 日
Your answer is of course simpler but he mentioned to do it with a for loop, therefore I wrote this. Otherwise of course I would have written something like you did.
KL
2017 年 12 月 7 日
You could call numel, outside the loop and store its output in a variable (after finding min and max) and only use this variable inside the loop.
Now, you're calling min and numel so many times (sometimes even twice within the same iteration).
その他の回答 (2 件)
Jan
2017 年 12 月 7 日
% number of elements of a is always bigger than b
This was not considered in the other suggestions. Another solution:
a = 0:2:10;
b = 0:2:6;
result = a - b(min(1:numel(a), numel(b)))
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!