Как я могу удалить дубликаты в массиве, но сохранить тот же порядок?

Да, это правильно. Сначала вы должны узнать свою учетную запись службы sqlserver, вы можете увидеть ее в Диспетчере задач, когда вы одновременно нажимаете Ctrl + Alt + delete. Затем вы должны предоставить привилегии чтения / записи «C: \ Murach \ SQL Server 2008 \ Базы данных» для учетной записи службы.

25
задан gnovice 22 June 2010 в 18:47
поделиться

2 ответа

Вот одно решение, которое использует некоторые дополнительные входные и выходные аргументы, которые UNIQUE имеет:

>> y = { 'd' 'f' 'a' 'g' 'g' 'a' 'w' 'h'};  %# Sample data
>> [~,index] = unique(y,'first');        %# Capture the index, ignore the actual values
>> y(sort(index))                           %# Index y with the sorted index

ans = 

    'd'    'f'    'a'    'g'    'w'    'h'
28
ответ дан Eypros 28 November 2019 в 20:38
поделиться

Если вы посмотрите документацию к unique, там есть возможность вернуть индекс вместе с отсортированным массивом. Вы можете указать, хотите ли вы, чтобы в индекс возвращалось первое или последнее вхождение числа.

Например:

a=[5, 3, 4, 2, 1, 5, 4];

[b,order]=unique(a,'first')

returns

b=[1, 2, 3, 4, 5] и m=[5, 4, 2, 3, 1]

Вы можете отсортировать ваш массив по порядку и сохранить индекс next

[~,index]=sort(order) %# use a throw-away variable instead of ~ for older versions

и, наконец, переиндексировать b

b=b(index)
6
ответ дан 28 November 2019 в 20:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: