Find differences in a set of points without a for loop
조회 수: 4 (최근 30일)
이전 댓글 표시
I a vector of numbers that I am trying to find the differences between each element in the vector without a for loop. Below is a code example. Is there a more efficient way to execute this code without a for loop?
x = rand(20,1);
diff = zeros(length(x),length(x));
for ix = 1:length(x)
for iy = (ix+1):length(x)
diff(ix,iy) = abs(x(ix) - x(iy));
end
end
댓글 수: 0
답변 (3개)
Image Analyst
2015년 4월 21일
편집: Image Analyst
2015년 4월 21일
diff() is a built in function. Don't use it for a variable name.
For a microscopic length such as 20, don't worry about a for loop. It won't take any time at all, and in fact may take less than calling some fancy function.
댓글 수: 1
Image Analyst
2015년 4월 21일
Richard's "Answer" moved here since it is not an answer to the original question:
Thanks for the help. My actual code has a vector that is much larger. I was just using this as an example.
Mehri Mehrnia
2022년 5월 19일
I have the question to find all pair-wise difference in a group without loop!
My array in scale of milions!
참고 항목
카테고리
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!