2014-09-19 3 views
1

примера, у меня есть массив:объединить два значения массива в Matlab

a = [2 3 1 2 4 5 6 4]; 
b = sort(a); 
b = [1 2 2 3 4 4 5 6]; 

Теперь я хочу, чтобы объединить два значения а и Ь:

c = [21 32 12 23 44 54 65 46] 

тогда я сделать вид с :

d = [12 21 23 32 44 46 54 65] 

и я снова объединить с в и г (прежде, с тем же значением вторых и с первым д, последний г):

e = [212 321 123 232 444 546 654 465] 

тогда я делать вид е:

f = [123 212 232 321 444 465 546 654] 

и я снова объединить с е и е:

g = [2123 3212 1232 2321 4444 5465 6546 4654] 

так до длины, которая равна 8.

Пожалуйста, помогите мне.

+0

Собственно, математика позади нее - это классно. спасибо. – user1735003

ответ

3

Попробуйте это:

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 

Он смотрит на меня как алгоритм просто добавляет последнюю цифру каждого отсортированного списка на соответствующее число в несортированном списке. t - это только последняя цифра в b, затем 10*a+t сдвигает существующие цифры в a и помещает t в конец. Извиняюсь, если я неправильно понял цель, и это неправильный алгоритм, но он работает с вами примером. Думаю, вам нужно будет убедить себя, соответствует ли код вашим правилам.

+0

Большое спасибо за помощь мне @David – yudha25

Смежные вопросы