Вопросы относительно обозначения двоеточия в MATLAB

Я столкнулся со следующей записью в MATLAB

y(:, :, :, 2) = y(:, :, :, 1);


y(:, 1, :, 4) = y(:, 1, :, 3);

y(:)?

Существует ли общее правило: обозначения.

Спасибо


person Tyrone    schedule 28.04.2015    source источник
comment
Прочтите документацию и отредактируйте свой вопрос, если хотите узнать что-то конкретное.   -  person David    schedule 28.04.2015


Ответы (2)


Все элементы в этом измерении. Пример,

> A=[2, 3, 4; 0, 5, 7]
A =
   2   3   4
   0   5   7
> A(:, 2)
ans =
   3
   5
> A(1, :)
ans =
   2   3   4
person cosmoscalibur    schedule 28.04.2015
comment
Вы знаете что-нибудь о y(:,1,:,4)? - person Tyrone; 28.04.2015
comment
Именно так... Возьмите все элементы в первом и третьем измерении со вторым и четвертым измерением в 1 и 4. - person cosmoscalibur; 28.04.2015

Я хотел бы отметить, что фактически заданный вопрос «y(:)?» даст вам содержимое матрицы y, преобразованной в матрицу Nx1 (также известную как вектор-столбец).

Это очень удобное поведение, потому что вам всегда гарантируется вектор-столбец независимо от ввода.

Например, для следующих матриц:

a = [1,3;2,4];
b = [1,2,3,4];
c = [1;2;3;4];

a(:), b(:) и c(:) дают следующее:

ans =
     1
     2
     3
     4
person Setsu    schedule 28.04.2015
comment
пример матрицы, которую вы даете, объединяет ли запись : два столбца? - person Tyrone; 28.04.2015
comment
@Tyrone Да, по столбцам. Вы всегда получаете Nx1. - person Setsu; 28.04.2015