2015-05-07 3 views
1

Может кто-то пожалуйста, объясните следующее выражение MATLAB:MATLAB выражение на левой стороне

Matrix_l(2,:,1:5)=FX1(:,1:5) 

Я понимаю, что все строки столбцы 1 до 5 из FX1 копируются. То, что я не понимаю, - это левое выражение.

ответ

1

Ваша LHS-матрица - kind of 3D-Object. Таким образом, вы вставляете все поля из всех строк и столбцов с 1 по 5 из FX1 во второй слой Matrix_I всех строк и столбцов с 1 по 5.
Вы можете представить это как кусок 3D-куба, приводящий к 2D-плоскости в который вставляются ваши данные из FX1. Надеюсь, что помогает.

+1

Да, это помогло. Фаза обучения. Большое спасибо. – mithun

+0

Я только что редактировал свой пост - вы можете посмотреть дальше в http://de.mathworks.com/help/matlab/math/multidimensional-arrays.html. Счастливое обучение. И, пожалуйста, отметьте этот ответ как решение. Заранее спасибо. –

9

Поскольку я не знаю размеров вашей фактической матрицы, я взял размеры моего собственного удобства.

FX1 размеров 5x7
Matrix_l размеров 5x5x6

Для того, чтобы понять физически, вертикальный срез (визуализировать черную доску) копируется на 2-й горизонтальный слой (визуализировать пол) в 3D-матрицы.

enter image description here

Первые 5 столбцов 2D матрицы (т.е. один справа - FX1 в вашем случае) копируется в 2-й строки и 1-5 единиц в 3-м измерениях 3D-матрицы (т.е. один слева - Matrix_l в вашем случае)

Кроме того, может обрабатывать еще более высокие размеры. Физически представить их было бы невозможно. Тем не менее стоит знать, как это работает.

Также посмотрите на Indexing и Colon(:) оператор для получения дополнительной информации.

+6

Хорошая визуализация! – Edric

+0

@Edric, Спасибо :) –

+1

+1 для меня. На самом деле приятно видеть визуализацию того, что на самом деле происходит при выполнении среза матрицы. – rayryeng

Смежные вопросы