フィルターのクリア

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 Center および File ExchangeShifting and Sorting Matrices についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by