Как я могу найти минимумы трехмерной матрицы в данном измерении? - PullRequest
0 голосов
/ 20 декабря 2018

Итак, я хочу взять минимум трехмерной матрицы, но я хочу иметь возможность выбрать, в каком измерении я хочу взять минимум.Например, если у меня есть случайная матрица 2x3x4.Я хочу, чтобы минимум в направлении z (т. Е. Размер 3 rd ).

M = rand(2, 3, 4)
MinMatrix = function(M, direction)

С направлением, которое я имею в виду для строки, столбца или направления z.Теперь скажите, что я хочу минимум в направлении z, поэтому функция должна дать мне MinMatrix, который имеет размер 2x3 и дает мне минимумы 4 чисел в направлении z:

Min1  Min2  Min3
Min4  Min5  Min6

Этоэто код, который я пытался получить только для минимума, без указания направления:

function [MinMatrix] = functionname(M)
  MinMatrix = min(M(:, :, 1:4));
end

Я нашел этот вопрос вместе с аналогичный вопрос на веб-сайте MathWorks , но это включает в себя изменение исходной матрицы, которой я хотел бы избежать, и вам нужно изменить код, чтобы изменить размерность.Из этих вопросов неясно, как я могу это решить.

1 Ответ

0 голосов
/ 20 декабря 2018

Вам необходимо указать аргумент измерения для функции min:

MinMatrix = min(M, [], 3);  % Minimum along the 3rd dimension

Обратите внимание, что в этом случае вы должны передатьпустая матрица для второго аргумента (это легко забыть при работе с min и max).

...