Извините, если раньше было задано что-то подобное. Похоже, что это должна быть легкая проблема на первый взгляд, но мне сложно описывать это, не говоря уже о ее решении! Давайте предположим, что у меня есть один матрица 5 х 3, который выглядит примерно так:Добавить значения в матрицу MATLAB на основе пар
A = [50 1 2
75 2 3
20 2 3
10 1 1
90 1 2]
Я хочу суммировать значения в первом столбце, где есть пара во 2-й и 3-й столбец, который дублируется где-то в другом месте. Таким образом, я пытаюсь преобразовать A (выше), в чем-то вроде этого 3 х 3 матрицы B, где:
B = [140 1 2
95 2 3
10 1 1]
Просто значения из столбца 1 добавляются, и мне нужно, чтобы они оставались соответствовали паре что «вызвало» их объединение. Я также должен добавить, что порядок значений в столбцах 2 & 3 имеет значение в том, что 3,4 считается другой парой, чем 4,3. (Разумеется, мои фактические данные включают значения в столбцах 2 & 3, которые хорошо подходят для 100-х, поэтому запись инструкции if для каждой возможной комбинации на самом деле не является возможностью ...)
Любые предложения по этому поводу будут оценили! Я изучал документацию на «найти» и наткнулся на что-то, называемое «член» - мне нужно использовать какое-то приложение?
Блина, теперь вы даже не ждать для меня, чтобы отправлять неэффективное решение: D Хорошей работы! Снова я посмотрел на 'help accumarray' безрезультатно. Возможно, я должен оставить эти вопросы вам в первую очередь;) –
@AndrasDeak Это идиоматическое использование' accumarray'. Вы научитесь любить его :-) –
Я не уверен ... мне это очень чужды каждый раз, когда я это вижу :) Просто не подходит для моего мышления. Но мне редко приходится делать такие вещи, так что это нормально :) –