I want to apply bubble sort

3 次查看(过去 30 天)
sm akash
sm akash 2020-1-13
评论: Sawyer Figol 2020-11-28
%%%%%%%%Bubble sort %%%%%%
function A = bubbleSort(A)
n = length(A );
while n ~= 0
nn = 0;
for ii = 1:n-1
if A (ii) > A (ii+1)
[A(ii+1),A(ii)] = deal(A (ii), A (ii+1));
nn = ii;
end
end
n = nn;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%
A=[];
for a=1:emp(1)-1
[f,vec]=featureExtraction(sondos(G(nG,a)).block);
A(a,1:9)=f;
A(a,10)=sondos(G(nG,a)).position(1);
A(a,11)=sondos(G(nG,a)).position(2);
end
else
A=[];
for a=1:size(G,2)
[f,vec]=featureExtraction(sondos(G(nG,a)).block);
A(a,1:9)=f;
A(a,10)=sondos(G(nG,a)).position(1);
A(a,11)=sondos(G(nG,a)).position(2);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A=bubbleSort(A);
for i=1:size(A,1)-1
similar=[];
for l=1:9 %num of features
s=abs(A(i+1,l)-A(i,l));
if s<s_threshold
%similar%
similar(l)=1;
else
%not similar%
similar(l)=0;
end
end
if isempty(find(similar==0)) %two block is similar calculat distance
x1=A(i,10);
x2=A(i+1,10);
y1=A(i,11);
y2=A(i+1,11);
D= sqrt((x1-x2)^2+(y1-y2)^2);
if D>Nd %calculate shift vector
rectangle('Position',[y1,x1,blocksize,blocksize],'Edgecolor','r');
rectangle('Position',[y2,x2,blocksize,blocksize],'Edgecolor','r');
% line([y1,y2],[x1,x2],'Color','r','LineWidth',1)
end
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%
when I run this,this error shows
Error using bubbleSort
Too many input arguments.
Error in DetectCM_Kmeans (line 86)
A=bubbleSort(A);

采纳的回答

M
M 2020-1-13
编辑:M 2020-1-13
bubblesort is defined such that it takes only one input (the table to sort).
And you call it with two inputs : A=bubbleSort(A,9);
What does the 9 correspond to ?

更多回答(1 个)

Michael Betts
Michael Betts 2020-11-28
f

类别

Help CenterFile Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by