Вы можете использовать unique
, чтобы получить все группы, затем splitapply
, чтобы суммировать их
[u, ~, iu] = unique( A(:,1:2), 'rows' ); % Get unique rows & their indices
sums = splitapply( @sum, A(:,3), iu ); % Sum all values according to unique indices
output = [u, sums]
% >> output =
% output =
% 26 7 124
% 26 8 785
% 27 7 800
. Это поздний ответ, потому что дублированный вопрос просто спросили, поэтому я разместил здесь вместо этого. Обратите внимание, что splitapply
был введен в R2015b, так что не было, когда было отправлено решение accumarray
.
Мое предположение заключается в том, что вы видите эту проблему, потому что существует конфликт между высотой, которую вы дали ей, и пространством, которое на самом деле нужно для правильного отображения.
Что вы можете сделать, чтобы решить эту проблему:
Также, как упоминал Хайнци в комментариях, вы должны, конечно, использовать прописную букву X.
. Кстати, вот трюк, который вы можете использовать, если хотите, чтобы кнопка была надлежащим квадратом, и убедитесь, что кнопка получает необходимый размер.
<Button Padding="0"
Width="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=ActualHeight}"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
FontSize="12" Content="X" />
Это эффективно позволяет кнопке решить, какую высоту ей нужно, а затем установить значение Width для этого расчетного значения.
Простым способом выполнить это с нижним регистром «x» является использование TextBlock
в качестве содержимого и воспроизведение с его верхним краем:
<Button Command="{Binding myCommand}">
<TextBlock Text="x" Margin="0,-3,0,0"/>
</Button>