/ / combine dois valores de array em Matlab - matlab

combina dois valores de array em Matlab - matlab

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 № 1

Tente 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.