Exemplo, eu tenho uma matriz:
a = [2 3 1 2 4 5 6 4];
b = sort(a);
b = [1 2 2 3 4 4 5 6];
Agora eu quero combinar dois valores de aeb:
c = [21 32 12 23 44 54 65 46]
então eu faço o tipo de c:
d = [12 21 23 32 44 46 54 65]
e eu combino novamente de c e d (primeiro de c, mesmo valor de segundo c e primeiro d, último d):
e = [212 321 123 232 444 546 654 465]
então eu faço o tipo de e:
f = [123 212 232 321 444 465 546 654]
e eu combino novamente de e e f:
g = [2123 3212 1232 2321 4444 5465 6546 4654]
assim por diante até o comprimento de um que é igual a 8.
Por favor me ajude.
Respostas:
3 para resposta № 1Tente isto:
a = [2 3 1 2 4 5 6 4]
for m=2:8
b = sort(a)
t = round(b-10*floor(b/10))
a = 10*a+t
end
Parece-me que o algoritmo apenas adiciona o último dígito de cada lista classificada ao número correspondente na lista não classificada. t
é apenas o último dígito em b
, então 10*a+t
desloca os dígitos existentes em a
e coloca t
no fim. Desculpas se eu entendi mal o objetivo e este é o algoritmo errado, mas funciona com o seu exemplo. Eu acho que você precisará se convencer se o código segue suas regras.