作业帮 > 综合 > 作业

matlab如何实现特定重排,具体如下:t = 1 1 3 4 4 6 6 6 2 5 如何使其变成 t = 1 1 2

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/05 13:29:18
matlab如何实现特定重排,具体如下:t = 1 1 3 4 4 6 6 6 2 5 如何使其变成 t = 1 1 2 3 3 4 4 4 5 6
数列中使数字从小到大显示,但是交换数字但不改变数字的个数!
matlab如何实现特定重排,具体如下:t = 1 1 3 4 4 6 6 6 2 5 如何使其变成 t = 1 1 2
[a,b]=sort(t);
t=a;
t
再问: 您好!这样运行的结果不对,仔细看我的第二个数列,其中只是把原来所有的3换成2,4换成3,6换成4,2换成5,5换成6.
再答: clc
clear
t=[1 1 3 4 4 6 6 6 2 5];
%[m,n]=size(t);
n=length(t);
temp=zeros(1,n);%记录数字个数
temp2=zeros(1,n);%记录数字
temp3=[];
temp2(1)=t(1);
j=1;
for i=1:n
if t(i)==temp2(j)
temp(j)=temp(j)+1;
else
j=j+1;
temp2(j)=t(i);
temp(j)=temp(j)+1;
end
end
t=[];
[a,b]=sort(temp2(1:j));%排序
temp2=a;
for i=1:j
temp3=repmat(temp2(1,i),1,temp(i));%对排序的元素进行扩充
t=[t,temp3];
end
t