Why does my vector repeat numbers?

조회 수: 1 (최근 30일)
CalamityGoat
CalamityGoat 2015년 4월 28일
댓글: Chad Greene 2015년 4월 28일
So I am trying to sort a random array of integers and with my code everything works except certain numbers will repeat multiple times. I'm not sure what I am doing that's making it repeat but I think it has to do with me possibly overwriting my variable x(k).
function y = sort(x)
for k = 1:length(x)-1
% Compare x(k) with values in original array x
for i = (k+1):length(x)
if x(k) < x(i)
temp = 0;
temp = x(i);
x(k) = temp;
end
end
y = x;
  댓글 수: 4
Stephen23
Stephen23 2015년 4월 28일
Also note that you should avoid using i and j as variable names, as these are both names of the inbuilt imaginary unit.
Chad Greene
Chad Greene 2015년 4월 28일
Also be careful using i and j as variables. They're both built in as the imaginary unit. Overwriting them is usually not a problem, but when it is a problem, it can be hard to track down.

댓글을 달려면 로그인하십시오.

채택된 답변

KL
KL 2015년 4월 28일
편집: KL 2015년 4월 28일
for j = 1:length(x)-1
% Find jth smallest element
imin = j;
for i = (j + 1):length(x)
if (x(i) < x(imin))
imin = i;
end
end
if (imin ~= j)
val = x(imin);
x(imin) = x(j);
x(j) = val;
end
end
  댓글 수: 1
CalamityGoat
CalamityGoat 2015년 4월 28일
Works perfectly had to change the logical expression so the array would descend rather than ascend. Thanks a bunch.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by