У меня есть 2 ячейки матриц строк, которые я хочу сравнить и сортировать в одном. Например:Matlab: Сортировка двухэлементных матриц строк
Data1={'hello','daddy','mama';'0','55','60';'asd','','dwadsdwa'};
Data2={'cat','daddy','dog','cat','mama','daddy';'21','54','79','1','0','231';'sa','wda','thjd','gf','wda','sda'};
Я хочу, чтобы сравнить первую строку матрицы и создать новый результат в виде матрицы с элементами согласования и их столбцов. Как:
matches={'daddy','daddy','daddy','mama','mama';'55','54','231','60','0';'','wda','sda','dwadsdwa','wda'};
Я попытался с:
Da1Index=find(ismember(Data1(1,:),Data2(1,:)));
Firstmatches=Data1(:,Da1Index);
Da2Index=find(ismember(Data2(1,:),Data1(1,:)));
Secondmatches=Data2(:,Da2Index);
Так что я хотел бы получить элементы соответствия и их столбцы в 2-х других матриц Cell. Теперь я мог искать каждый элемент-имя Firstmatches в массиве ячеек Secondmatches, но мне интересно, есть ли лучший способ? Также я не знаю, как добавить столбцы в правильные позиции.
Возможно, есть более простой способ сделать это? Я надеюсь, что это ясно, чего я хочу достичь!
Большое спасибо, это работает отлично. Но можете ли вы объяснить сортировки (совпадения. ').'; выражение? что .').' делать? – deSteini
'.'' транспонировать. 'sortrows' сортирует строки массива, но вы хотите отсортировать столбцы. Таким образом, вы транспонируете, сортируете строки, а затем переносите назад –